java SimpleDataFormat无法正确处理上午12点
我试图用SimpleDateFormat
解析字符串"2/20/2012 12:00:00 AM"
,它似乎是在下午12点出来的
Date fromFmt = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss aa")
.parse("2/20/2012 12:00:00 AM");
// Calendar months are 0-indexed
Date fromCal = new Date(new GregorianCalendar(2012, 1, 20, 0, 0, 0)
.getTimeInMillis());
System.out.println(fromFmt);
System.out.println(fromCal);
产出:
Mon Feb 20 12:00:00 PST 2012
Mon Feb 20 00:00:00 PST 2012
我希望他们都能输出后者。我的格式字符串有问题吗
(请不要说“使用JodaTime”。)
# 1 楼答案
改用这个:
注意,我使用了
hh
而不是HH
。前者是这样做的:HH
这样做:你在告诉
SimpleDateFormat
你将在一小时内通过0-23范围内的考试,但你实际上没有这样做。这就是为什么你会遇到这个问题