【问题标题】:Localtion of pattern for date formats in javajava中日期格式模式的位置
【发布时间】:2013-04-21 19:40:13
【问题描述】:

在 java 中,您可以通过以下方式获取基于特定语言环境的日期格式:

Locale locale = new Locale("en", "UK");
DateFormat format = DateFormat.getDateInstance(DateFormat.MEDIUM, locale);
System.out.println( ((SimpleDateFormat)format).toPattern());

打印出来

dd-MMM-yyyy

此模式是否硬编码在某个属性文件中?有什么方法可以扩展 java 机制并应用我自己的模式(依赖于语言环境),所以当我运行上面的代码时,我得到:

dd-MM-yyyy

【问题讨论】:

  • 如果你想要一个特定的模式,你为什么不明确地指定呢?或者您是否正在尝试使用总是要求中等模式的代码?
  • 是的,我们的想法是始终使用相同的模式。

标签: java date format locale


【解决方案1】:

我们的想法是始终使用相同的格式,在我的例子中是 DateFormat.SHORT。

我最终使用短格式并将包含 2 个字符的默认格式替换为 4 个字符的年份。

如果有人想知道,格式确实是硬编码在 FormatData_XX_YY 类下的 sun.text.resources 包中(例如 FormatData_en_UK)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 2011-11-16
    • 1970-01-01
    相关资源
    最近更新 更多