加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – SimpleDateFormat无法正确处理12个月

发布时间:2020-12-15 00:21:28 所属栏目:Java 来源:网络整理
导读:我正在尝试使用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 = n
我正在尝试使用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范围内的一小时内传递,但你实际上并没有这样做.这就是你遇到这个问题的原因.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读