2016-03-23 12 views
1

ich den folgenden Code ausführen und falsches Datum erhalten (statt 2015.01.02 06.00.00 AM es 2015.12.28 06.00.00 druckt):Falsches Datum nach der Verarbeitung erhalten

SimpleDateFormat _sdf = new SimpleDateFormat("M/d/YYYY H:mm:ss a"); 
    _time = "02/01/2015 6:00:00 AM"; 
    Date date; 
    try { 
     date = _sdf.parse(_time); 
     Calendar calendar = GregorianCalendar.getInstance(); 
     calendar.setTime(date); 
     _time = _sdf.format(calendar.getTime()); 
     System.out.println(_time); // 12/28/2015 6:00:00 AM !!! 
    } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
+0

Sind Sie sicher, dass Sie tatsächlich den ganzen Weg bekommen zu '_sdf.format()'? Ich denke, 'setTime()' schluckt nichts als eine Instanz von 'Date'. –

+1

'YYYY'! =' Yyyy', grundsätzlich ... –

Antwort

1

Versuchen Sie, diese zu nutzen:

SimpleDateFormat _sdf = new SimpleDateFormat("M/d/yyyy H:mm:ss a"); 

dh, müssen Sie yyyy statt, wenn yYYY verwenden.

Überprüfen Sie die Oracle Docs

y Year Year 1996; 96 
Y Week year Year 2009; 09 
+1

Hoppla. Vielen Dank! – JoeBlack

Verwandte Themen