2017-10-22 12 views
-1

Ich versuche, das aktuelle Datum und die Uhrzeit zu erhalten und eine Sammlung zu erstellen, die meine aktuelle Uhrzeit/Datum und die nächste Stunde usw. enthält.Wie kann ich Datum/Uhrzeit ohne CET bekommen?

Ich bin ein ziemlich Anfänger in Java und vor zwei Problemen. Die Ausgabe lautet:

Sa 23. Oktober 00.07.27 CET 1937

Sa 23. Oktober 01.07.27 CET 1937

  1. Wie kann ich das Datum/Zeit bekommen ohne MEZ 1973?
  2. Warum ist der Wochentag (sat) nicht der tatsächliche (Montag) (2 Tage früher)?

Source Code ist:

SimpleDateFormat format1 = new SimpleDateFormat("EEE, d MMM HH:mm"); 
    System.out.println(format1.getCalendar().getTime()); 
    format1.getCalendar().add(Calendar.HOUR, 1);   
    System.out.println(format1.getCalendar().getTime()); 
+0

Bitte zeigen Sie den Code, der diesen Ausgang erzeugt. Bitte klären Sie auch die Frage - 23. Oktober 1937 * ist * Samstag, nicht Montag. Erwarten Sie 1973? Und CET gilt für die Zeit; nicht Jahr – Felix

+0

Sa Okt 23 01:07:27 CET 1937 ... Ich möchte meine Ausgabe ohne (CET1937) und will der Wochentag der tatsächliche Tag sein, der in meinem Fall jetzt Montag ist? – Was

+0

Sie bekommen das heutige Date natürlich nicht! Du erhältst den 23. Oktober ** 1937 **! Haben Sie ein falsches Datum auf Ihrem Computer? – Felix

Antwort

0

überprüfen Sie das korrekte Datum und die Uhrzeit auf dem Host-Computer. Ihr Computer scheint falsch eingestellt zu sein. Besuchen Sie http://time.is/

Verwenden Sie moderne java.time Klassen statt der problematischen alten Calendar Klasse.

Erhalten Sie den aktuellen Moment in UTC, mit einer Auflösung von bis zu Nanosekunden.

Instant instant = Instant.now() ; 

Geben Sie Ihre gewünschte/erwartete Zeitzone an.

ZoneId z = ZoneId.of("Europe/Paris")) ; 

In gewünschte Zeitzone anpassen.

ZonedDateTime zdt = instant.atZone(z) ; 

Überprüfen Sie den Wochentag.

DayOfWeek dow = zdt.getDayOfWeek() ; 

Sammeln Sie diesen Moment und jede der folgenden zwei Stunden.

List<ZonedDateTime> moments = new ArrayList<>(3) ; 
moments.add(zdt) ; 
moments.add(zdt.plusHours(1)) ; 
moments.add(zdt.plusHours(2)) ; 

einen String generieren mithilfe der DateTimeFormatter Klasse jeder dieser Werte zu repräsentieren. Durchsuchen Sie Stack Overflow nach weiteren Informationen, da dies bereits viele Male abgedeckt wurde.

Verwandte Themen