2016-06-09 7 views
-4

Ich muss den Zeitwert als 0 ändern. Meine Eingabe ist im Format: 2016-07-30T06: 00: 00: 000Z Erwartetes Ergebnis: 2016.07.30 00.00.00 ich habe versucht, einen Code, aber es wird nicht funktionierenWie setze ich den Zeitwert als 00:00:00 mit Hilfe von Java

final Calendar calendar = Calendar.getInstance(); 
     calendar.setTimeZone(timezone); 
     calendar.setTime(date); 
     calendar.set(Calendar.0); 
     calendar.set(Calendar.MINUTE, 0); 
     calendar.set(Calendar.SECOND, 0); 
     calendar.set(Calendar.MILLISECOND, 0); 

freundlich etwas Lösung vorschlagen. danke im voraus.

+5

gibt's Calendar.0' scheint falsch. – MikeCAT

+2

define funktioniert nicht –

+4

Mögliches Duplikat von [Zeit auf 00:00:00 setzen] (http://stackoverflow.com/questions/17821601/set-time-to-000000) – eol

Antwort

0

Hier ist ein Beispiel dafür, wie der Kalender

String months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", 
    "Sep", "Oct", "Nov", "Dec" }; 

Calendar calendar = Calendar.getInstance(); 

System.out.print("Date: "); 
System.out.print(months[calendar.get(Calendar.MONTH)]); 
System.out.print(" " + calendar.get(Calendar.DATE) + " "); 
System.out.println(calendar.get(Calendar.YEAR)); 

System.out.print("Time: "); 
System.out.print(calendar.get(Calendar.HOUR) + ":"); 
System.out.print(calendar.get(Calendar.MINUTE) + ":"); 
System.out.println(calendar.get(Calendar.SECOND)); 

calendar.set(Calendar.HOUR, 10); 
calendar.set(Calendar.MINUTE, 29); 
calendar.set(Calendar.SECOND, 22); 

System.out.print("Updated time: "); 
System.out.print(calendar.get(Calendar.HOUR) + ":"); 
System.out.print(calendar.get(Calendar.MINUTE) + ":"); 
System.out.println(calendar.get(Calendar.SECOND)); 
} 
} 

So verwenden würde ich für Sie ist dieses

calendar.setTimeZone(timezone); 
calendar.setTime(date); 
calendar.set(Calendar.0); 

loszuwerden und

calendar.set(Calendar.HOUR, 0); 
calendar.set(Calendar.MINUTE, 0); 
calendar.set(Calendar.SECOND, 0); 
einige Code, um diese Änderung

Das sollte funktionieren Ich habe es nicht getestet.

Weitere Informationen finden Sie hier http://www.java2s.com/Code/JavaAPI/java.util/Calendarsetintfieldintvalue.htm

+1

Das Verwenden der HOUR-Konstante funktioniert nicht mit PM-Zeiten , HOUR_OF_DAY sollte verwendet werden, wie @RuanMalans in seiner Antwort darauf hinweist. –

+0

Ah guter Punkt Ich vergaß HOUR_OF_DAY – MNM

0

Wenn Sie auf Java 8 sind Sie das neue Datum und Zeitbibliothek verwenden können:

date.toInstant().truncatedTo(ChronoUnit.DAYS) 

, die Sie den richtigen Augenblick geben. Sie können es einfach zurück in eine Date-Instanz konvertieren, indem Sie die Factory-Methode Date.from(Instant) verwenden.

1

Ihre Linie

calendar.set(Calendar.0); 

ist das Problem.

Menschen fälschlicherweise oft tun

calendar.set(Calendar.HOUR, 0); 

, die beispielsweise

ist, während

calendar.set(Calendar.HOUR_OF_DAY, 0); 

die richtige Art und Weise versagt Dieser Code funktioniert

Date date = new Date(); 
final Calendar calendar = Calendar.getInstance(); 
    calendar.setTime(date); 
    calendar.set(Calendar.HOUR_OF_DAY, 0); 
    calendar.set(Calendar.MINUTE, 0); 
    calendar.set(Calendar.SECOND, 0); 
    calendar.set(Calendar.MILLISECOND, 0); 
Date zeroedDate = calendar.getTime(); 
System.out.println(zeroedDate); 

bei der Ausführung mir

Do 9. Juni 00.00.00 NZST 2016

+0

Guter Punkt, das ist eine einfache Falle, in die man fallen kann! Beachten Sie jedoch die Zeitzone. Sie erhalten in Ihrer lokalen Zeitzone keine Stunden. –

Verwandte Themen