2013-07-18 34 views
0

我需要將日期格式轉換爲NEW_FORMAT日期格式。我想這樣的展示June 28,2016,但它顯示一月,不管我通過的任何月份號碼。請檢查我的思念在那裏..使用SimpleDateFormat轉換數據格式

public class DateClass { 

     public static void main(String[] args) 
     { 
      final String OLD_FORMAT = "yyyy-mm-dd"; 
      final String NEW_FORMAT = "MMMM dd,yyyy"; 

      String oldDateString = "2016-06-28"; 
      String newDateString; 

      SimpleDateFormat sdf = new SimpleDateFormat(OLD_FORMAT); 
      Date d; 
      try { 
       d = sdf.parse(oldDateString); 
       sdf.applyPattern(NEW_FORMAT); 
       newDateString = sdf.format(d); 
       System.out.println(""+newDateString); 
      } catch (ParseException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
    } 
+0

我明白了。感謝所有......最後的字符串OLD_FORMAT =「yyyy-mm-dd」;應該用最終字符串替換OLD_FORMAT =「yyyy-MM-dd」; – pioneerBhawna

回答

4

OLD_FORMAT是錯誤的,它應該是"yyyy-MM-dd"。這裏小m應該由大寫M替換,因爲小m代表分鐘,而M代表月份,而在使用OLD_FORMAT解析時,錯誤地解析日期。

+1

Thanx .......很多:) – pioneerBhawna

2

您在OLD_FORMAT中使用mm代表分鐘。你想要有MM代表月份。

因此您的OLD_FORMAT應該是yyyy-MM-dd

在您的情況下,分鐘設置爲0,因此該月份爲1月。

+0

Thanx的解釋 – pioneerBhawna

2

在java中,毫米代表的小步舞和MM代表爲一個月,所以你必須改變你的代碼

final String OLD_FORMAT = "yyyy-MM-dd"; 
    final String NEW_FORMAT = "MMMM dd,yyyy"; 

    String oldDateString = "2016-06-28"; 
2

變化這一個

final String OLD_FORMAT = "yyyy-mm-dd"; 

final String OLD_FORMAT = "yyyy-MM-dd";