2013-12-13 30 views
2

我工作的定位現有的Java應用程序,其中包括與獲取時間格式毫秒的語言環境

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

一切都很好替換像

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

線。但現在我需要本地化以下內容:

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

有沒有簡單的方法來做到這一點?搜索讓我失望。我總是可以使用SimpleDateFormat,抓取模式,並用ss.SSS代替ss,但我更願意使用不太可能在未來破解的方法。

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

我無法理解這是如何處理本地化的。似乎任何時候我打電話 sdf = new SimpleDateFormat(DATE_FORMATS.SHORT.toString()); 我會在上午/下午得到一個時間,不管這是否合適。 –

+0

對不起,您然後從[ResourceBundle](http://docs.oracle.com/javase/6/docs/api/java/util/ResourceBundle.html)加載實際格式。 –

相關問題