使用joda time遇到坑,做pattern解析时间:
System.out.println(DateTime.parse("2015092408", DateTimeFormat.forPattern("yyyyMMddHH")).getMillis()); System.out.println(DateTime.parse("2015092408", DateTime Format.forPattern("YYYYmmDDhh")).getMillis());
两段代码打印时间 不一样,第一个才是正确的解析,大师看到这里肯定会发笑:“yyyy”与“YYYY”不一样,确实是个很低级的错误,类似的linux下date命令规范,这里做个脑补,提醒自己pattern格式不能想当然:
y:year(15)
Y:year(2015)
M:月份,(文本,数字)
d: day of month (数字)
D: day of year (数字)
a: 上午、下午(am pm)
h: 小时(1-12)
H: 小时(0-23)
k: 小时(1-24)
m:分钟(数字)
s:秒(数字)
S:毫秒(数字)
e: day of week(数字)
E:day of week(文本)
w: week of year (数字)
z:timezone(文本)
Z:timezone (time zone offset)
System.out.println(new DateTime(dateTime, DateTimeZone.forID("Asia/Tokyo")).toString()); System.out.println(new DateTime(dateTime, DateTimeZone.forOffsetHours(9)).toString());