2013-02-03 54 views
5

如何在Java中執行此轉換?將「2013年2月1日星期五」轉換爲「2013-02-01」

目前,我正在做:

public static String formatDate(String strDateToFormat) { 
    try { 
     SimpleDateFormat sdfSource = new SimpleDateFormat("EEEE, MMMM DD, YYYY"); 
     Date date = sdfSource.parse(strDateToFormat); 
     SimpleDateFormat sdfDestination = new SimpleDateFormat("yyyy-MM-dd"); 
     return sdfDestination.format(date); 
    } catch (ParseException pe) { 
     System.err.println("Parse Exception : " + pe); 
    } 

    return null; 
} 

然而,這會導致不正確的格式。它給了我下面的輸出:

Friday, February 1, 2013 > 2013-01-04 
Thursday, January 31, 2013 > 2013-01-03 
+2

你爲什麼重複輸出兩個值這麼多次? –

+0

將「d」和「YYYY」更改爲「yyyy」 –

+0

我將用'pe.printStackTrace();'替換'System.err.println(「解析異常:」+ pe);''。或者,更好的是,從你的方法中拋出異常。 –

回答

9

您使用DD在你的解析部分,這是一年中的一天。您需要改爲dd。您也可能想要yyyy(年)而不是YYYY(週年)。 (在大多數情況下,它們是相同的值,但並非總是如此。)

相關問題