2015-03-31 109 views
-1

我有以下字符串:20140420000001 我想它格式化爲:2014-04-20+00:00:01最快的字符串格式轉換

什麼是最快的方式在Java中做到這一點?

比這更快嗎?

String dt = "20140420000001"; 
System.out.println(dt.substring(0, 4)+"-"+dt.substring(4, 6)+"-"+dt.substring(6, 8)+"+"+dt.substring(8, 10)+":"+dt.substring(10, 12)+":"+dt.substring(12, 14)); 
+5

使用'SimpleDateFormat'。忘記過早的優化,這不是性能瓶頸。 – 2015-03-31 16:46:17

+0

@LuiggiMendoza:我已經看到日期解析/格式化真的*已經成爲瓶頸的場合 - 但我肯定會首先做,並且只能在*證明*之後尋找「最快的可能方式」,這是瓶頸一個特定的情況。 – 2015-03-31 16:50:13

+0

@LuiggiMendoza如果op只是想在字符串的某些固定位置插入'-''+'和':',那麼可能不需要簡單的日期格式。 – assylias 2015-03-31 16:57:02

回答

2
return new String(new char[] { 
      s.charAt(0), s.charAt(1), s.charAt(2), s.charAt(3), 
      '-', s.charAt(4), s.charAt(5), 
      '-', s.charAt(6), s.charAt(7), 
      '+', s.charAt(8), s.charAt(9), 
      ':', s.charAt(10), s.charAt(11), 
      ':', s.charAt(12), s.charAt(13) 
    }); 

不算漂亮,但幾乎沒有什麼純Java快。