SimpleDateFormat的使用
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 时区
大小写一定要区分,有坑,比如月是M,分是m
SimpleDateFormat aDate=new SimpleDateFormat(“yyyy/MM/dd”);
SimpleDateFormat bDate=new SimpleDateFormat(“yyyy/mm/dd”);
String now1=“2018/12/24”;
aDate.setLenient(false);
Date d = aDate.parse(now1);
Date e = bDate.parse(now1);
System.out.println(d);
System.out.println(e);
结果: Mon Dec 24 00:00:00 GMT+08:00 2018
Wed Jan 24 00:12:00 GMT+08:00 2018
parse(将字符串转为日期)
SimpleDateFormat aDate=new SimpleDateFormat(“yyyy/MM/dd”);
String now1=“2018/12/32”;
aDate.setLenient(true);
Date d = aDate.parse(now1);
System.out.println(d);
结果:Tue Jan 01 00:00:00 GMT+08:00 2019
setLenient()用于设置Calendar是否宽松解析字符串,如果为false,则严格解析;默认为true,宽松解析,日期错了不会报错,直接后延,比如2018/1/32转为日期为2018年2月1日。
补充一个坑:测试发现日期中day有小数的可以正确转换
SimpleDateFormat aDate=new SimpleDateFormat("yyyy/MM/dd");
String now1="2018/12/22.2";
aDate.setLenient(false);
Date d = aDate.parse(now1);
System.out.println(d);
结果:Sat Dec 22 00:00:00 GMT+08:00 2018
末尾的小数直接被抹掉了,y和M则不会
currentTimeMillis()
返回值为long型,得到的是自1970年1月1日零点到目前计算这一刻所经历的的毫秒数