当前位置:  开发笔记 > 编程语言 > 正文

hh:mm a和HH之间的差异:mm a

如何解决《hh:mma和HH之间的差异:mma》经验,为你挑选了2个好方法。

这是我原来的代码 -

String dateString = "23 Dec 2015 1:4 PM";
Locale locale = new Locale("en_US");
SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy HH:mm a");
DateFormat df = new SimpleDateFormat("dd MMM yyyy HH:mm a", locale);
Date date = null;

try {
    date = formatter.parse(dateString);
} catch (ParseException e) {
    LOGGER.error(e);
}

String newDate = df.format(date);
System.out.println("oldDate = " + dateString);
System.out.println("newDate = " + newDate);

这是我的输出 -

oldDate = 23 Dec 2015 1:4 PM
newDate = 23 Dec 2015 01:04 AM

和之间存在AM-PM差异.现在我把代码更改为-oldDatenewDateDateFormat

SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy hh:mm a");
DateFormat df = new SimpleDateFormat("dd MMM yyyy hh:mm a", locale);

我得到了预期的输出,这是 -

oldDate = 23 Dec 2015 1:4 PM
newDate = 23 Dec 2015 01:04 PM

我知道这HH表示24小时格式并hh表示12小时格式.

我的问题是

如果我使用HH:mm a而不是hh:mm a,这不应该以24小时格式返回时间吗?

(要么)

如果它默认为12小时格式,根据提供的日期输入,它不应该返回相应的AM/PM标记吗?

这只是为了我的理解.



1> Mr.Arjun..:

更新的答案

问题出在这里 Program flow

SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy HH:mm a");

simple date formatter用于格式化Date对象的日期字符串,这是答案的重要部分

当您使用HH代替HHSimpleDateFormater认为提供日期字符串是24-Hour Format,只是忽略AM/PM marker这里.

从这个SimpleDateFormatter构造的Date对象被传递给

DateFormat df = new SimpleDateFormat("dd MMM yyyy HH:mm a", locale);

这就是它打印的原因

newDate = 23 Dec 2015 01:04 AM

如果你改变了这条线

SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy HH:mm a");

SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy hh:mm a");

一切都会顺利进行!

注意:创建语言环境时,应将语言代码传递给Locale()构造函数.en-us没有en_us.

IMP:Code 也在Java 8上进行了测试.Java(TM) SE Runtime Environment (build 1.8.0_121-b13)



2> Abdelhak..:

hh:mm和HH之间的差异:mm:

  HH:mm => will look like 00:12, 23:00... this has 24 hour format.

  hh:mm => will look like 01:00Am, 02:00Am,...01:00pm this has 12 hour format.

ahh:mm a或HH:mm a是Am/pm标记,有关详细信息,请转到链接

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有