gpt4 book ai didi

java - 如何获得默认的日期和时间格式模式

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:58:46 28 4
gpt4 key购买 nike

有人能告诉我如何获取指定语言环境(或默认语言环境)的默认日期和时间格式模式(字符串)。

我已经找到的(可能对其他人有用):

  1. 如何获取默认语言环境。

    Locale currentLocale= Locale.getDefault();
    System.out.print(currentLocale.toString());

    Result is "en_US"
  2. 如何获取小数点分隔符。

    DecimalFormatSymbols decimalFormatSymbols =
    new DecimalFormatSymbols(currentLocale);
    System.out.print(decimalFormatSymbols.getDecimalSeparator());

    Result is "."
  3. 如何获取默认的日期和时间格式模式(字符串);

    (do something)
    System.out.print(something);
    And got at output something like this: "dd/mm/yyyy" or "hh:mm:ss"..
    or other values for specified locale.

非常感谢。

更新:找到解决方案:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
String dateLocalizedFormatPattern = simpleDateFormat.toLocalizedPattern();

The result of System.out.print(dateLocalizedFormatPattern)
on my device is "M/d/yy h:mm a".

最佳答案

更新

正如 Russian Bear 在他对问题的更新中提到的,SimpleDateFormat 中有一个 toLocalizedPattern() 方法返回格式字符串。

原始答案

SimpleDateFormat在其私有(private)构造函数中使用以下代码:

...
ResourceBundle r = LocaleData.getDateFormatData(loc);
if (!isGregorianCalendar()) {
try {
dateTimePatterns = r.getStringArray(getCalendarName() + ".DateTimePatterns");
} catch (MissingResourceException e) {
}
}
if (dateTimePatterns == null) {
dateTimePatterns = r.getStringArray("DateTimePatterns");
}
...

所以实际的格式字符串似乎在 ResourceBundle 中,可通过 LocaleData.getDateFormatData() 方法访问。

不幸的是 LocaleData 类是内部 sun.util.resources 包的一部分。

关于java - 如何获得默认的日期和时间格式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10561481/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com