Java SimpleDateFormat 解析的日期时间与日历日期时间不同
Java SimpleDateFormat parsed datetime is different with Calendar datetime
我运行遵循代码:
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd hh:mm zzz");
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();
System.out.println(date);
System.out.println(sdf.format(date));
我得到了:
Mon Jan 25 18:32:52 CST 2016
2016-01-25 06:32 CST
我在中国。为什么?
在 SimpleDateFormat
中,hh
说明符将日期格式化为 12 小时制(通常与 am/pm
表示法一起使用)。如果您需要 24 小时制,请使用 HH
或 kk
:
...
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm zzz");
...
另见 https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html:
H Hour in day (0-23)
k Hour in day (1-24)
h Hour in am/pm (1-12)
我运行遵循代码:
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd hh:mm zzz");
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();
System.out.println(date);
System.out.println(sdf.format(date));
我得到了:
Mon Jan 25 18:32:52 CST 2016
2016-01-25 06:32 CST
我在中国。为什么?
在 SimpleDateFormat
中,hh
说明符将日期格式化为 12 小时制(通常与 am/pm
表示法一起使用)。如果您需要 24 小时制,请使用 HH
或 kk
:
...
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm zzz");
...
另见 https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html:
H Hour in day (0-23)
k Hour in day (1-24)
h Hour in am/pm (1-12)