Date类

java.util包提供了Date类来封装当前的日期和时间。Date类提供两个构造函数来实例化Date对象。

1、使用当前日期和时间来初始化对象

Date()

2、接收一个参数,该参数是从1970年1月1日起的毫秒数

Date(long millisec)

其它方法

boolean after(Date date)

若当调用此方法的Date对象在指定日期之后返回true,否则返回false。

boolean before(Date date)

若当调用此方法的Date对象在指定日期之前返回true,否则返回false。

Object clone()

返回此对象的副本

int compareTo(Date date)

比较当调用此方法的Date对象和指定日期。两者相等时候返回0。调用对象在指定日期之前则返回负数。调用对象在指定日期之后则返回正数。

int compareTo(Object obj)

若obj是Date类型则操作等同于compareTo(Date) 。否则它抛出ClassCastException。

boolean equals(Object date)

当调用此方法的Date对象和指定日期相等时候返回true,否则返回false。

long getTime()

返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数

int hashCode()

返回此对象的哈希码值。

void setTime(long time)

用自1970年1月1日00:00:00 GMT以后time毫秒数设置时间和日期。

String toString()

把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。

SimpleDateFormat类

SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行。

Date dNow = new Date();
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println("当前时间为:"+ft.format(dNow));

注意区分大小写,输出结果为:当前时间为:2019-09-28 18:50:00

日期和时间的格式化编码

字母描述示例
G纪元标记AD
y四位年份2001
M月份July or 07
d一个月的日期10
hA.M./P.M(1~12)格式小时12
H一天中的小时0~2322
m分钟数55
s秒数30
S毫秒数234
E星期几Tuesday
D一年中的日子360
F一个月中第几周的周几2(second Wed in July)
w一年中第几周40
W一个月中第几周1
aA.M./P.M.标记PM
k一天中的小时(1~24)24
KA.M./P.M.(0~11)格式小时10
z时区Eastern Standard Time
'文字定界符Delimiter
"单引号'

解析字符串为时间

SimpleDateFormat 类有一些附加的方法,特别是parse(),它试图按照给定的SimpleDateFormat 对象的格式化存储来解析字符串。

SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
String input = "";
Date t;
try{
t=ft.parse(input);
}catch(ParseException e){

}

使用printf格式化日期

printf 方法可以很轻松地格式化时间和日期。使用两个字母格式,它以 %t 开头并且以下面表格中的一个字母结尾。

转换符说明示例
C包括全部日期和时间信息星期六 十月 27 14:21:20 CST 2007
F"年-月-日"格式2007-10-27
D“月/日/年”格式10/27/2007
r“HH:MM:SS PM”格式02:25:51 下午
T“HH:MM:SS”格式14:28:56
R“HH:MM”格式14:28
Date date = new Date();
System.out.printf("全部日期和时间信息:%tc%n",date);
System.out.printf("年-月-日格式:%tF%n",date);

Calendar类

Calendar类是比Date类更强大的一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。

02-12 05:16