Fehler im GregorianCalendar

Plaxo

Mitglied
Hallo zusammen,

seit Dezember benutze ich ein Script, welches über
Java:
   GregorianCalendar past = new GregorianCalendar(dYear, dMonth, dDay, lastHours, lastMinutes, lastSeconds);

... sowie verschiedener Berechnungen den letzten Login-Zeitpunkt von Usern berechnet (z.B. NICK war vor 3 Tagen 7 Minuten letztmalig Online)

Das hat bis gestern IMMER geklappt, doch seit gestern rechnet er mir plötzlich immer eine Stunde +, obwohl ich wirklich nicht verändert habe.
Nachdem ich etwas rumprobiert habe, ist mir folgendes aufgefallen:
Diese + 1 Stunde wird nur zwischen dem 01. März-25. März eines Monats zugerechnet und im Oktober (1.Oktober-25. Oktober) + 23 Stunden, also überhaupt nicht nachvollziehbar?

Mir kommt der Gedanke das es mit der Sommer-und/oder Winterzeit zusammenhängt, jedoch fängt die gängige Sommerzeit doch nicht schon am 01. März statt? Das versteh ich einfach nicht.

Ich hoffe, mir kann da jemand weiter helfen.

Grüße,
Plaxo
 

Schandro

Top Contributor
ganz allgemein gesagt: ich hatte auch schon mal das Problem das beim GregorianCalendar bestimmte Somer/Winterzeit Tage falsch hinterlegt waren. Ich musste das dann manuell mit nem dreckigen Hack augleichen, war sehr nervig -.-
 
B

...ButAlive

Gast
Kannst du vielleicht mehr Code zum Reproduzieren posten? Wenn ich dich richtig verstanden habe, bildest du die Differenz aus zwei GregorienCalendar-Instanzen. Wie machst du das?

Spontan denke ich daran, dass es dieses Jahr einen 29. Februar gab. Vielleicht liegt es ja am Schaltjahr.
 

tagedieb

Top Contributor
Ich vermute es koennte schon an der Winter-/Sommerzeit umstellung liegen.
Die Zeit wird nicht ueberall auf der Welt zur selben Zeitpunkt umgestellt.

Mit welchen Zeitzonen-Einstellungen laeuft deine Applikation und mit deine Datenbank?
 
N

nillehammer

Gast
Mit dem geposteten Code erstellst Du einen GregorianCalendar mit default time zone. Wenn die nicht die richtige ist, kann das die Ursache sein. Um ganz sicher zu gehen, füge folgende Zeile in Deinen Code ein:
Java:
System.out.println(TimeZone.getDefault());
Falls das ergibt, dass sie nicht stimmt, musst Du nach der Erzeugung von "GregorianCalendar past" noch folgendes machen:
Java:
past.setTimeZone(TimeZone.getTimeZone("dein_Zeitzonen_String"));
 

jgh

Top Contributor
Also ich kann dir -trotz vielfacher anderer Meinung- versichern, dass die Entwicker bei sun und oracle keine Vollpfosten sind...und das der Fehler nicht im GregorianCalendar liegt!

allerdings wäre es natürlich interessant, wie du die Differenz berechnest. Machst du es bspw. so oder ähnlich und erwartetest dann den 01.Jan 1970, 07:05:44 , liegt der Fehler bei dir ;-)

Java:
int dYear = 2012;
		int dMonth = 2;
		int dDay = 3;
		int lastHours = 0;
		int lastMinutes = 0;
		int lastSeconds = 0;
		GregorianCalendar past = new GregorianCalendar(dYear, dMonth, dDay,
				lastHours, lastMinutes, lastSeconds);// stellt das Datum auf den 03.03.2012 0:00:00 Uhr
		Date now = new Date();
		System.out.println(new Date((now.getTime() - past.getTimeInMillis())));
//Ausgabe (am 03.03.2012 um 07:05 Uhr) Thu Jan 01 08:05:44 CET 1970
 

Plaxo

Mitglied
Also ich kann dir -trotz vielfacher anderer Meinung- versichern, dass die Entwicker bei sun und oracle keine Vollpfosten sind...und das der Fehler nicht im GregorianCalendar liegt!

allerdings wäre es natürlich interessant, wie du die Differenz berechnest. Machst du es bspw. so oder ähnlich und erwartetest dann den 01.Jan 1970, 07:05:44 , liegt der Fehler bei dir ;-)

Java:
int dYear = 2012;
		int dMonth = 2;
		int dDay = 3;
		int lastHours = 0;
		int lastMinutes = 0;
		int lastSeconds = 0;
		GregorianCalendar past = new GregorianCalendar(dYear, dMonth, dDay,
				lastHours, lastMinutes, lastSeconds);// stellt das Datum auf den 03.03.2012 0:00:00 Uhr
		Date now = new Date();
		System.out.println(new Date((now.getTime() - past.getTimeInMillis())));
//Ausgabe (am 03.03.2012 um 07:05 Uhr) Thu Jan 01 08:05:44 CET 1970

Du hast Recht: So in der Art berechne ich es.
Aber kann mir dann einer erklären, wieso es z.B. im Januar & Februar wunderbar ging?
Und hat jemand evtl eine Lösung, diesen Bug zu beheben? Vorrerst bin ich da leider ratlos...
 

tagedieb

Top Contributor
Start- und Enddatum muessen der Greenwich-Zeitzone ("GMT") angepasst werden. Das Date Object rechnet auch von dieser Zeitzone, wenn ein neues Datum mittels Millisekunden erstellt wird.

Java:
		int dYear = 2012;
		int dMonth = 2;
		int dDay = 3;
		int lastHours = 0;
		int lastMinutes = 0;
		int lastSeconds = 0;
		GregorianCalendar past = new GregorianCalendar(dYear, dMonth, dDay,
				lastHours, lastMinutes, lastSeconds);// stellt das Datum auf den
														// 03.03.2012 0:00:00
														// Uhr
		past.setTimeZone(TimeZone.getTimeZone("GMT"));
		Calendar now = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
		
		System.out.println(new Date(now.getTimeInMillis() - past.getTimeInMillis()));

Als alternative empfehle ich die JodaTime Library
Java date and time API - Period
 

Plaxo

Mitglied
Start- und Enddatum muessen der Greenwich-Zeitzone ("GMT") angepasst werden. Das Date Object rechnet auch von dieser Zeitzone, wenn ein neues Datum mittels Millisekunden erstellt wird.

Java:
		int dYear = 2012;
		int dMonth = 2;
		int dDay = 3;
		int lastHours = 0;
		int lastMinutes = 0;
		int lastSeconds = 0;
		GregorianCalendar past = new GregorianCalendar(dYear, dMonth, dDay,
				lastHours, lastMinutes, lastSeconds);// stellt das Datum auf den
														// 03.03.2012 0:00:00
														// Uhr
		past.setTimeZone(TimeZone.getTimeZone("GMT"));
		Calendar now = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
		
		System.out.println(new Date(now.getTimeInMillis() - past.getTimeInMillis()));

Als alternative empfehle ich die JodaTime Library
Java date and time API - Period

Hat fast geklappt - kurz noch gegoogelt und "GMT+01:00" draus gemacht - jetzt gehts! Danke :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Seltsamer Fehler bei GregorianCalendar Allgemeine Java-Themen 2
A Fehler bei Rechnung mit GregorianCalendar Allgemeine Java-Themen 6
F GregorianCalendar wirft keine Fehler bei z.b. Monat 17 Allgemeine Java-Themen 3
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
S Fehler: <ID> erwartet Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
Pinhg Discord JDA Bot - Fehler Allgemeine Java-Themen 3
KonradN CVE-2022-21449: Fehler in Java bei Signaturprüfung Allgemeine Java-Themen 20
L Fehler mit Boolean. (Glaube ich zumindest) Allgemeine Java-Themen 6
P Selenium Scriipt zeigt Fehler beim Import Allgemeine Java-Themen 3
O Fehler bei Variablen Allgemeine Java-Themen 2
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
M Kein Scanner Fehler durch falsche EIngabe Allgemeine Java-Themen 4
N nicht einsehbarer Fehler im code, kann nicht mehr übersetzten Allgemeine Java-Themen 51
yakazuqi Fehler beim Laden. JDA (Java Discord API) Allgemeine Java-Themen 1
C Fehler bei der Benutzung von itextpdf Allgemeine Java-Themen 1
U Fehler beim Compillieren Allgemeine Java-Themen 13
x46 String Format Fehler Allgemeine Java-Themen 2
bueseb84 Fehler beim Import von Maven Dependencies aus lokalem artifactory Allgemeine Java-Themen 2
MiMa Datei verschieben hat einen Fehler?? Allgemeine Java-Themen 20
O xlsx Datei auslesen mit POI von Apache wirft seltsamen Fehler. Allgemeine Java-Themen 11
T Java-Quiz Code Fehler Allgemeine Java-Themen 10
A Fehler beim Öffnen eines Projekts Allgemeine Java-Themen 6
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
T Fehler bei IF abfrage Allgemeine Java-Themen 8
C Fehler beim Debuggen von Listen Allgemeine Java-Themen 4
M Einheitenrechner - Fehler Allgemeine Java-Themen 12
D Erste Schritte Fehler mit negativen und 0 Zahlen im String Allgemeine Java-Themen 6
T Denk-Fehler? Allgemeine Java-Themen 4
A Finde den Fehler nicht. Allgemeine Java-Themen 7
H Class 'java.io.BuferedReader' is not present in JRE Emulation Libary | GWT Fehler?! Allgemeine Java-Themen 0
D Unbekannter Fehler Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 3
ReinerCoder Methode einer Klasse meldet Fehler "misplaced construct(s)" Allgemeine Java-Themen 13
R Wo ist mein Fehler in der Methode DRINGEND Allgemeine Java-Themen 9
R Wo ist mein Fehler in diesem Code Allgemeine Java-Themen 7
I Fehler beim Ant-Package erstellen mit Java 9 Allgemeine Java-Themen 1
L Fehler bei der Ausführung einer Jar Allgemeine Java-Themen 2
T OOP Fehler im Design Allgemeine Java-Themen 9
Thallius Unfassbarer Fehler. Brauche Ideen zum Debuggen Allgemeine Java-Themen 9
U Eclipse MANIFEST fehler Allgemeine Java-Themen 7
I Fehler bei HashMaps Darstellung Allgemeine Java-Themen 10
R Classnotfoundexception Fehler Allgemeine Java-Themen 3
A Fehler beim Aktualisieren JTable Allgemeine Java-Themen 1
N Compiler-Fehler Warum erhalte ich einen Nullpointer Fehler? Allgemeine Java-Themen 2
N Prim's Algorithm - wo ist der Fehler? Allgemeine Java-Themen 3
J-Gallus Erste Schritte Wahrscheinlich Anfänger Fehler beim rechnen. Falsches Ergebnis. Allgemeine Java-Themen 9
M Line-Fehler Allgemeine Java-Themen 8
U Input/Output Warum wirft mir das Programm diesen Fehler? Allgemeine Java-Themen 6
RalleYTN Merkwürdiger Fehler mit JFrame im Vollbild Allgemeine Java-Themen 4
V AudioInputStream Fehler Allgemeine Java-Themen 1
J Interpreter-Fehler Fehler beim Verschlüsseln Invalid AES key length Allgemeine Java-Themen 1
G Fehler mit Vector Allgemeine Java-Themen 3
F Java Fehler "buildTableModel" Allgemeine Java-Themen 3
F Fehler in Zeile in Log schreiben Allgemeine Java-Themen 6
DanielsLPecke Input/Output Arduino komischer Fehler. Allgemeine Java-Themen 38
V JavaFX Fehler beim Starten einer Jar Allgemeine Java-Themen 7
S Hashtable Fehler Allgemeine Java-Themen 14
S Zwei String vergleichen, Fehler markieren Allgemeine Java-Themen 3
C Hilfe bei einer Fehler meldung Allgemeine Java-Themen 3
K Was ist mein Fehler? Allgemeine Java-Themen 2
Tausendsassa Compiler-Fehler Fertiges Programm mit Fehler Allgemeine Java-Themen 10
B Eclipse Nach Export einer .jar Fehler: Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 5
K Fehler beim erstellen von .jar Datei Allgemeine Java-Themen 3
P Java Fehler auf Win2008 Server java.io.FilePermission IE8 Version JRE 1.7.0_51 Allgemeine Java-Themen 7
M Eclipse - Fehler: Hauptklasse de.xyz.init.MeineKlasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 2
Seikuassi Swing Stehe auf dem Schlauch...(BufferedReader_Writer-Fehler?) Allgemeine Java-Themen 4
M Eclipse Fehler beim Installieren des Plugins "Jigloo" Allgemeine Java-Themen 12
A Eclipse - Fehler beim "RUN" - "Unable to Launch - The selection cannot be launched" Allgemeine Java-Themen 6
B Fehler bei einem Programm Allgemeine Java-Themen 10
F HILFEEEEEE JAVA Fehler - Tiny Umbrella Allgemeine Java-Themen 1
N JavaFX IndexOutOfBounds-Fehler Allgemeine Java-Themen 11
N GPIB - Fehler: Unable to open device Allgemeine Java-Themen 1
S Ganzes Programm "stucked" - JVM-Fehler? Allgemeine Java-Themen 2
D Variablen Ausgabe bzw. einlese Fehler Allgemeine Java-Themen 7
I Fehler java.lang.NullPointerException Allgemeine Java-Themen 5
B NullPointerException - Aber kein Fehler im Code Allgemeine Java-Themen 4
B Eclipse Fehler in eclipse/Java Allgemeine Java-Themen 13
B Fehler beim Auslesen von Einstellungen. Zwei ähnliche Blöcke, nur eins geht. Allgemeine Java-Themen 5
H JUnit Fehler beim Compilieren - erledigt Allgemeine Java-Themen 0
J Fehler beim parsens eine Datums Allgemeine Java-Themen 3
A Thread Fehler absichtlich provozieren Allgemeine Java-Themen 3
J Compiler-Fehler .nextLine fehler Allgemeine Java-Themen 3
B Fehler im Java-Code Allgemeine Java-Themen 4
S Java Fehler bei Konsolenprogramm Allgemeine Java-Themen 2
N Was ist ein Fehler (Requirement-Engineering) Allgemeine Java-Themen 3
C System.out.print("") Compiler Fehler Allgemeine Java-Themen 2
T Programm bleibt ohne Fehler stehen Allgemeine Java-Themen 4
G Fehler beim instanzieren einer Generischen Klasse Allgemeine Java-Themen 5
K Eclipse Fehler beim Ausführen meines Programms in Eclipse Allgemeine Java-Themen 11
K Input/Output Fehler bei Dateierzeugung Allgemeine Java-Themen 7
M Fehler bei Remoteinstallation von Java Allgemeine Java-Themen 5
M Fehler bei Verwendung von TexturePaint Allgemeine Java-Themen 16
M JUnit & Multithreading - sehr seltener Fehler Allgemeine Java-Themen 3
G Merkwürdiger Fehler NetBeans Allgemeine Java-Themen 2
G Native Library / Fehler beim Laden der .so/.dll Datei Allgemeine Java-Themen 17
P java tabelle auslesen - xls (excel) fehler Allgemeine Java-Themen 5
iB0T Unverständlicher Fehler Allgemeine Java-Themen 5
S Antlr Grammatik übersetzt ohne Fehler, dennoch wird Zahl nicht als Eingabe erkannt Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben