java25:SimpleDateFormat;DateFormat

SimpleDateFormat的作用

1:将Date 对象转换为特定格式的字符串   format方法

2:将字符串按照特定格式转换为Date对象    parse方法

package day25;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo07 {
	public static void main(String[] args) throws ParseException{
		String timerStr = "2016-01-13 18:59:01";
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date = format.parse(timerStr);
		System.out.println(date);
	}
}

DateFormat类

是SimpleDateFormat的父类,创建实例时只需要调用其提供的一个静态方法getInstance(),不要用new 这个就是之前用过的工厂方法

package day25;

import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

public class Demo08 {//将Date 对象转换为特定格式的字符串
	public static void main(String[] args){
		Date date = new Date();
		DateFormat  format = DateFormat.getDateInstance(DateFormat.LONG,Locale.CHINA);
		System.out.println(format.format(date));
	}
}

Calendar 类

可以方便的进行日期的计算。

获取日期中的信息时考虑了时区等问题

创建实例通常可以使用提供的工厂方法

getInstance() 自动根据当前系统所处地区创建对应时区的实现类

通过Calendar可以方便的设置一个时间

set(int field,int value);

获取Calendar 描述的时间的某个信息

get(int field);

计算时间的方法将给定的时间单位累加给定的值并使当前calendar代表这个时间

add(int field,int value);

package day25;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class Demo09 {
	public static void main(String[] args){

		//创建calendar实例 calendar是抽象类 有子类创建
		//创建出来的Calendar实例描述的是当前系统时间
		//计算时间
		Calendar calendar = Calendar.getInstance();
		System.out.println(calendar);
		//格林威治时间
		//calendar = new GregorianCalendar();

		//中介
		Date date = calendar.getTime();
		System.out.println(date);

		//输出的时候使用
		SimpleDateFormat  fmt = new SimpleDateFormat("yyyy-MM-dd");
		String str  = fmt.format(date);
		System.out.println(str);

		//设置一个时间点
		calendar.set(Calendar.YEAR, 1111);
		calendar.set(Calendar.MONTH,Calendar.NOVEMBER);
		calendar.set(Calendar.DAY_OF_MONTH,11);
		System.out.println(calendar.getTime());
		calendar.set(Calendar.DAY_OF_MONTH,1111);
		System.out.println(calendar.getTime());
		calendar.set(Calendar.HOUR_OF_DAY, 11);
		calendar.set(Calendar.MINUTE, 11);
		calendar.set(Calendar.SECOND, 11);
		System.out.println(calendar.getTime());

		int week = calendar.get(Calendar.DAY_OF_WEEK);
		System.out.println(week);//国外星期天是第一天
		int day = calendar.get(Calendar.DAY_OF_YEAR);
		System.out.println(day);

		int sumOfYear = calendar.getActualMaximum(Calendar.DAY_OF_YEAR);//传入的年的最大值
		int sumOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
		System.out.println(sumOfYear);
		System.out.println(sumOfMonth);

		//计算今天是星期几(其他公司不知道,我们公司非常常用用来算星期六和星期天,不开盘)
		//计算一年中的星期六和星期天生成不开盘时间表(一定的) 在手动加入假期(这个是不定的)

	}
}
package day25;

import java.util.Calendar;

public class CalendarDemo10 {
	public static void main(String[] args){
		Calendar calendar = Calendar.getInstance();
		calendar.add(Calendar.MONTH,1);
		int week = calendar.get(Calendar.DAY_OF_WEEK);
		System.out.println("星期"+(week==1?7:week-1));
	}
}
时间: 2024-12-18 06:52:03

java25:SimpleDateFormat;DateFormat的相关文章

深入理解Java:SimpleDateFormat安全的时间格式化 ;

想必大家对SimpleDateFormat并不陌生.SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方法应该使用同步代码来避免问题.下面我们通过一个具体的场景来一步步的深入学习和理解SimpleDateFormat类. 一.引子 我们都是优秀的程

【转】深入理解Java:SimpleDateFormat安全的时间格式化

[转]深入理解Java:SimpleDateFormat安全的时间格式化 想必大家对SimpleDateFormat并不陌生.SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方法应该使用同步代码来避免问题.下面我们通过一个具体的场景来一步步的深入

Java多线程:SimpleDateFormat

一.SimpleDateFormat的线程安全问题 为什么SimpleDateFormat是线程不安全的? 下面通过一个案例代码来说明 public class DateUtilTest { public static class TestSimpleDateFormatThreadSafe extends Thread { @Override public void run() { while(true) { try { this.join(2000); } catch (Interrupte

关于ie7下display:inline-block;不支持的解决方案

关于ie7下display:inline-block:不支持的解决方案 今天码的时候遇到这个问题了. 如果本身是内联元素的,把它的display属性设置设置为inline-block时,所有浏览器都是支持的. 相反,如果本身是块级元素的,把它设为display:inline-block;  那么ie6/ie7都是不支持的. IE中对内联元素使用display:inline-block,IE是不识别的,但使用display:inline-block在IE下会触发layout,从而使内联元素拥有了d

java基础—继承题目:编写一个Animal类,具有属性:种类;具有功能:吃、睡。定义其子类Fish

编写一个Animal类,具有属性:种类:具有功能:吃.睡.定义其子类Fish package zhongqiuzuoye; public class Animal { //属性 private String type; public String getType() { return type; } public void setType(String type) { this.type = type; } //功能 public void eat() { } public void sleep

区别CSS中display:box;inline;none以及HTML中 <frame> 标签<table> 标签的 frame 属性

区别display:box:display:inline:display:none三者的不同 display:block的特点是: block是Display默认的值.总是在新行上开始:该对象随后的内容自动换行;行高以及顶和底边距都可控制:宽度缺省是它的容器的100%,除非设定一个宽度:<div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子,意思是他们默认显示方式是block: display:inl

完成一个登陆页面。(用户名:F11;密码:123456)。要求用户输入用户 名和密码,验证是否等于正确值。如果等于告知登陆成功,程序结束;否则告 知用户名密码有误。用户三次输入不正确,告知登陆失败,程序结束 。

#include <stdio.h>#include <string.h> /*完成一个登陆页面.(用户名:F11:密码:123456).要求用户输入用户名和密码,验证是否等于正确值.如果等于告知登陆成功,程序结束:否则告知用户名密码有误.用户三次输入不正确,告知登陆失败,程序结束 .*/ void main(){ char username[20]; char password[20]; int i = 0; for(i = 0; i < 3; i++) { printf(

An Introduction to Conditional Random Fields论文摘要(翻译:Trey;审校:Shooya)

摘要:通常,我们希望预测大量的,正如依赖于其他观察到的变元一样,互相间同样存在依赖的变元.结构化的预测模型,本质上是分类方法和图形化建模的结合,这些预测模型将图形化模型对多变元数据的有效建模能力,以及分类方法通过使用大的输入特征集来作出预测的能力结合起来.本指引讨论用于结构化预测的一个流行的概率模型--条件随机域.条件随机域广泛应用于自然语言处理.计算机视觉,以及生物信息学.我们讨论推理的方法以及条件随机域的参数估计,包括实现大规模条件随机域的实际问题.我们并没有假设读者具备任何图形化建模的预备

Supervised Machine Learning: A Review of Classification Techniques论文摘要(翻译:Trey;审校:Shooya)

摘要:有监督学习是对一类算法的研究,这类算法从表面实例推断出一般性的假说,得出的假说又可以进一步用来预测未发生的实例.换言之,有监督学习的目标,就是根据预测特征,为分类标签的概率分布建立简洁的模型.得到的分类器会被用于为测试实例贴上分类标签,其中,测试实例的分类特征是已知的,但其分类标签是未知的.本文讨论各种有监督机器学习分类技术.当然,单独一篇文章,无法遍及所有的有监督机器学习分类算法(亦称为归纳分类算法),然而我们希望我们所引用的文献可以覆盖主要的理论主题,为正在有趣的研究方向上进行研究的研