2016-06-14 57 views
0

使日期解析不能正確解析月份的因素是什麼?不解析月份的日期

我有這個很基本的代碼:

DateFormat format = new SimpleDateFormat("DD/MM/yyyy", Locale.FRENCH); 
    Date date = format.parse(dateInterv); 

dateIntervString值爲「14/06/2016」,而當我解析日期,date是在一月份。即使在調試器中,我也不明白爲什麼它將14/06/2016轉換爲14/01/2016。

+0

你嘗試不使用語言環境? 'DateFormat format = new SimpleDateFormat(「DD/MM/yyyy」); ' –

回答

2

您的字符串必須是:

DateFormat format = new SimpleDateFormat("dd/MM/yyyy", Locale.FRENCH); 
    Date date = format.parse(dateInterv); 

因爲dd是一個月的一天,DD是一年

+1

正確的格式是'dd/MM/yyyy'實際上'mm'是分鐘 –

+0

哇,它對我來說太愚蠢了......非常感謝 – RiddlerNewComer

+0

@Vlad ....只是一個錯字錯誤,抱歉... – Opiatefuchs

0

的一天你可以按照以下任何格式從SimpleDateFormat

SimpleDateFormat format = new SimpleDateFormat(); 
    Date curDate = new Date(); 

    format = new SimpleDateFormat("yyyy/MM/dd"); 
    DateToStr = format.format(curDate); 
    System.out.println(DateToStr); 

    format = new SimpleDateFormat("dd-M-yyyy hh:mm:ss"); 
    DateToStr = format.format(curDate); 
    System.out.println(DateToStr); 

    format = new SimpleDateFormat("dd MMMM yyyy zzzz", Locale.ENGLISH); 
    DateToStr = format.format(curDate); 
    System.out.println(DateToStr); 

    format = new SimpleDateFormat("MMMM dd HH:mm:ss zzzz yyyy", 
      Locale.ITALIAN); 
    DateToStr = format.format(curDate); 
    System.out.println(DateToStr); 

    format = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z"); 
    DateToStr = format.format(curDate); 
    System.out.println(DateToStr); 
0

我想你可能想改成這樣:

SimpleDateFormat formatter =new SimpleDateFormat("dd/MM/yyyy", Locale.French); 
    Date date = formatter.parse(dateInterv); 
    String formattedDate = formatter.format(date);