我正在努力本地化现有的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
,但我更倾向于使用一种不太可能在将来中断的方法。
答案 0 :(得分:0)
是。我可以想到两个选项 -
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()));
}