SimpleDateFormat构造函数的参数:
G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区
注意:大小写是区分的,含义有可能不一样
//样例使用
SimpleDateFormat example1= new SimpleDateFormat( "Gyyyy年MM月dd日 HH时mm分ss秒" );
Date now= new Date();
System.out.println(example1.format(now));
公元
2020
年
10
月16
日
09
时
19
分
29
秒
//求两个任意日期间隔天数
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
Date f = sf.parse("1921-07-23");
Date s = sf.parse("2020-07-01");
System.out.println((s.getTime() - f.getTime()) / 1000 / 60 / 60 / 24);结果: 36138
这里值得注意的是调用Date.getTime()得到的是毫秒级的时间数,两个时间相减,得到时间间隔,单位毫秒,转化成天数需要进行时间换算。
//求当前日期一年中的第几天
SimpleDateFormat example=new SimpleDateFormat("一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");
Date now=new Date();
System.out.println(example.format(now));一年中的第 290 天 一年中第42个星期 一月中第3个星期 在一天中14时 CST时区
求某一天是星期几
String date="2020-10-16";
SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
Date myDate = myFormatter.parse(date);
SimpleDateFormat formatter = new SimpleDateFormat("E");
String day = formatter.format(myDate);System.out.println(day);
星期五