我正在尝试使用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) .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’.)
解决方法
请改用:
new SimpleDateFormat("MM/dd/yyyy hh:mm:ss aa")
请注意,我正在使用hh而不是HH.前者这样做:
Hour in am/pm (1-12)
HH这样做:
Hour in day (0-23)
你告诉SimpleDateFormat你将在0-23范围内的一小时内传递,但你实际上并没有这样做.这就是你遇到这个问题的原因.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。