Java提供了Date类来处理日期、时间(此处的Date是指java.util包下的Date类,而不 是java.sql包下的Date类),Date对象既包含日期,也包含时间。Date类从JDK1.0起 就开始存在了,因为它历史悠久,所以它的大部分构造器、方法都已经过时,不再推荐使用了,只有少数方法可以正常使用。
构造器:
Java.util.Date的构造器还剩下两个构造器,其他都已经过时(@Deprecated注解,表示已经不再推荐使用,使用会有警告,并且可以会导致程序性能或者安全性方面的问题)
Date() 分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。(无参构造器)
Date(long date) 分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元 (epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。(传入一个long)
时间标识符:
G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / b 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区
方法演示代码:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateClassDemo {
public static void main(String[] args) {
//构造器
Date date=new Date();//获取当前时间的date对象
Date date2=new Date(System.currentTimeMillis());
System.out.println(date.toString());
System.out.println(date2.toString());
//getTime setTime
// long getTime()返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
// 从getTime中取出long型数据,转换成long毫秒(常用)
// setTime(long time)设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT以后 time 毫秒的时间点。
System.out.println("<-----拿出来------->");
long longValue=date.getTime();
System.out.println(longValue);//拿出来
System.out.println("<-----放进去------->");
longValue+=10000;
date2.setTime(longValue);//放进去
System.out.println(date2.toString());
System.out.println("<-----比较------->");
//比较
// boolean before(Date when) 测试此日期是否在指定日期之前。
System.out.println("date.before(date2) = "+date.before(date2));//date在Date2之前,所以true
// boolean after(Date when) 测试此日期是否在指定日期之后。
System.out.println("date.after(date2) = "+date.after(date2));//date在Date2之后,所以
// int compareTo(Date anotherDate) 比较两个日期的顺序。
System.out.println("date.compareTo(date2) = "+date.compareTo(date2));//date-Date2,-1代表Date比Date2小
//
System.out.println("<-----Date和String之间互转------->");
// 日期转换
System.out.println("SimpleDateFormat 进行日期格式化");
// SimpleDateFormat简单的日期格式化
// 传入需要的时间格式
SimpleDateFormat dateFormat1=new SimpleDateFormat("yyy-MM-dd HH:mm:ss:SSS");
// 格式化 dateFormat1.format(date); 传入需要的格式
String strDate=dateFormat1.format(date);
System.out.println("strDate = " +strDate);
// 换回来
Date date3;
//相互转换时用到try/catch格式
try {
// strDate=strDate.replace('-','/');
// 用parse 时要注意,被转换时间字符串格式必须和转换器声明的格式一致
date3 = dateFormat1.parse(strDate);
System.out.println(date3);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
演示结果: