2013-02-11 50 views
1

我有一個帶有這個值的字符串,例如:「20130211154717」我希望它像「2013-02-11 15:47:17」。我怎樣才能做到這一點?解析帶有整數值的字符串

+0

string.substring +串聯。 – 2013-02-11 17:54:07

+1

@GilbertLeBlanc。我們應該在日期字符串上僅作爲日期操作。 – 2013-02-11 17:57:30

+0

@GilbertLeBlanc可能這是最快捷的方式,如果字符串格式正確且日期正確。 'DateFormat'可以確保字符串的有效性,以嘗試轉換爲'Date'。 – 2013-02-11 18:28:01

回答

7

您可以使用兩種SimpleDateFormat:一個解析輸入和一個以產生輸出:

String input = "20130211154717"; 
Date d = new SimpleDateFormat("yyyyMMddhhmmss").parse(input); 
String output = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d); 
System.out.println("output = " + output); 
+0

謝謝,我必須等6分鐘才能接受你的回答。 – 2013-02-11 18:01:23

1

您可以使用正則表達式爲:

String formattedDate = plainDate.replaceFirst(
     "(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})", 
     "$1-$2-$3 $4:$5:$6"); 

雖然,我喜歡assylias的SimpleDateFormat回答更好。 :-)

+0

你知道他們對正則表達式的看法嗎... – 2013-02-11 17:56:03

+0

完全是吧?這就是爲什麼我說我更喜歡'SimpleDateFormat'方法。 :-) – 2013-02-11 17:56:29

0

可以使用substring()方法來得到你想要的方式:

String data = "20130211154717"; 
String year = data.substring(0, 4); 
String month = data.substring(4, 2); 
// etc. 

,然後把它們串起來:

String formatted = year + "-" + month + "-" + . . .