Java日期格式很奇怪

时间:2014-02-03 10:24:21

标签: java date

我有一个问题,我希望得到当天的开始,但它似乎是通过自动设置为12:00。

SimpleDateFormat dfFull = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String todayDate = dfFull.parse("2014-06-06 00:00:00");

today = dfFull.format(todayDate);
System.out.println(today);

为什么会吐出来:

2014-06-06 12:00:00

12:00:00是问题

2 个答案:

答案 0 :(得分:11)

这是因为hh表示12小时格式的小时。您需要改为使用HH

SimpleDateFormat dfFull = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

有关详细信息,请查看docs

另外,在旁注中,代码中存在拼写错误。

SimpleDateFormat dfFull = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date todayDate = dfFull.parse("2014-06-06 00:00:00"); // todayDate must be of type Date and not String
String today = dfFull.format(todayDate); // today should be of type String
System.out.println(today);

答案 1 :(得分:1)

在这种情况下,你应该使用HH几个小时。

SimpleDateFormat dfFull = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String todayDate = dfFull.parse("2014-06-06 00:00:00");

today = dfFull.format(todayDate);
System.out.println(today);

现在你将获得输出

2014-06-06 00:00:00

如果您使用hh表示您使用12小时格式而HH表示24小时格式

所以