java - 获取区域设置的时间格式为毫秒

  显示原文与译文双语对照的内容
50 2

我正在对现有的Java应用程序进行本地化,其中一部分包括替换


DateFormat f2 = new SimpleDateFormat("h:mm:ss a");


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

一切正常,但现在我需要本地化以下内容:


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

有没有一种直接的方法来? 搜索失败了,我总是可以用 Pattern,抓取,并用 ss.SSS 替换 ss,但是我更愿意用一种方法。

时间: 原作者:

150 4

是的,我可以考虑两个选项-

  1. 定义你自己的常量
  2. 制作你自己的enum

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()));
}

原作者:
...