Java SimpleDateFormat解析的日期时间与日历日期时间不同

标签 java datetime calendar

我运行以下代码:

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 小时制,请使用 HHkk:

...
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)

关于Java SimpleDateFormat解析的日期时间与日历日期时间不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34990526/

相关文章:

java - 关闭并重新打开应用程序后,Android Canvas 游戏循环中断 onResume()

java - 接缝/hibernate : liquibase before JPA startup

java - Install4j:多个脚本或自定义操作的通用回滚操作

c# - 从一组闹钟中获取第一个闹钟时间

JavaScript - 获取两个日期之间的分钟数

php查询,最终日历结果

java - 如何对可用性检查进行编程并在 Outlook 中创建新 session ?

java - 如何找到数组中出现次数最多的数字并打印出来

php - MySql 查询两个日期时间范围之间每个间隔的记录

java - Java 新手 - 需要让这个数组工作...不知道如何 :(