获取语​​言环境的时间格式(以毫秒为单位)

时间:2013-12-13 17:36:13

标签: java localization date-formatting

我正在努力本地化现有的Java应用程序,其中一部分涉及替换像

这样的行
DateFormat f2 = new SimpleDateFormat("h:mm:ss a");

DateFormat f2 = DateFormat.getTimeInstance(DateFormat.MEDIUM);

一切都很好。但现在我需要本地化以下内容:

DateFormat f1 = new SimpleDateFormat("h:mm:ss.SSS a");

有直接的方法吗?搜索失败了。我总是可以转换为SimpleDateFormat,抓取模式,并将ss替换为ss.SSS,但我更倾向于使用一种不太可能在将来中断的方法。

1 个答案:

答案 0 :(得分:0)

是。我可以想到两个选项 -

  1. 定义自己的常量
  2. 制作自己的枚举

public static String MY_DATE_FORMAT = "HH:mm:ss.SSS a"; // a constant.
public static enum DATE_FORMATS { // a enum
  SHORT, LONG, MEDIUM;
  public String toString() {
    switch (this) {
    case SHORT:
      return "HH:mm:ss"; // this should be loaded from a ResourceBundle.
    case LONG:
      return "HH:mm:ss.SSS a";  // this should be loaded from a ResourceBundle.
    case MEDIUM:
      return "HH:mm:ss.SSS";  // this should be loaded from a ResourceBundle.
    }
    return "";
  }
}

public static void main(String[] args) {
  SimpleDateFormat sdf = new SimpleDateFormat(MY_DATE_FORMAT); // option 1
  System.out.println(sdf.format(new Date()));
  sdf = new SimpleDateFormat(DATE_FORMATS.SHORT.toString()); // option 2
  System.out.println(sdf.format(new Date()));
}