2013-10-17 19 views
0

這可能很容易,我可能看不到明顯的,但我想1小時試圖找出如何將字符串的日期轉換爲我想要的格式。Android dateformat顯示格式無效

String date_begin = "15-10-2013 10:25:31"; 
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // This is the format I want 
Date startDate; 
try { 
    startDate = df.parse(date_begin); 
    String startDateString1 = df.format(startDate); 
    Log.e("New date: ", startDateString1);  
} catch (ParseException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

和輸出如下:

新日期:(2799):0021-04-04 10點25分31秒

如何D'到底是顯示此輸出?

回答

3

15-10-2013 10:25:31不是yyyy-MM-dd HH:mm:ss格式。改爲用dd-MM-yyyy HH:mm:ss進行解析。

看起來像要更改格式。解決方案是使用兩個SimpleDateFormat,一個用於解析,另一個用於格式化輸出。就像這樣:

DateFormat inputFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); 
DateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
startDate = inputFormat.parse(date_begin); 
String startDateString1 = outputFormat.format(startDate); 
Log.e("New date: ", startDateString1); 
+0

我不明白。我希望它顯示yyyy-MM-dd HH:mm:ss不是dd-MM-yyyy HH:mm:ss。 – user2742861

+0

@ user2742861將字符串解析爲Date是一回事,將Date設置爲String是另一回事。你可以爲每個單獨使用'SimpleDateFormat'。更新了答案。 – laalto

+0

仍然沒有得到它。你是否告訴我我需要創建兩個SimpleDateFormat? – user2742861

2

你有不同的格式

SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); 
+0

不正確的答案。 – user2742861

0

的date_begin的格式來解析日期的SimpleDateFormat( 「YYYY-MM-DD HH:MM:SS」)是不相同。兩者都應採用相同的格式。

+0

你錯過了這一點。 – user2742861