Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich weis das es schon einen Beitrag zu diesem Thema gab.
Der hilft mir aber nicht. Außerdem ist er geschlossen.
Mein Problem:
Ich lese eine Zeitangabe in Millisekunden (seit 01.01.1970) aus einer Datenbank.
Daraus muss ich jetzt nur die Stunden, Minuten und Sekunden ermitteln.
Nun hab ich das Problem das sich beide Ergebnisse unterscheiden. Wieso ?
Außerdem zeigt mir das Programm, dass eigentlich mit der Datenbak arbeitet eine noch ganz andere Zeit (11:44:00) an. Und diese setze ich jetzt erst mal als richtig an.
Bei deinem ersten Code gibst du einfach nur die Konstantne aus der Calendar Klasse aus, die sind immer 11 usw,die haben nichts mit deinem Calendar zu tun (Verwendung ist hier falsch!)
Beim Zweiten hängt`s vermutlich mit den lokalen Zeiteinstellungen zusammen. Deine DB gibts vermutlich in GMT an, probiere mal:
Java:
Calendar myCal3 = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
besorg dir mal die Klasse Calendar.java... da wirst du lachen...
das sind konstanten, wo eine int zahl dahinter steckt..
....
/**
* Field number for <code>get</code> and <code>set</code> indicating the
* hour of the day. <code>HOUR_OF_DAY</code> is used for the 24-hour clock.
* E.g., at 10:04:15.250 PM the <code>HOUR_OF_DAY</code> is 22.
*
* @see #HOUR
*/
public final static int HOUR_OF_DAY = 11;
/**
* Field number for <code>get</code> and <code>set</code> indicating the
* minute within the hour.
* E.g., at 10:04:15.250 PM the <code>MINUTE</code> is 4.
*/
public final static int MINUTE = 12;
/**
* Field number for <code>get</code> and <code>set</code> indicating the
* second within the minute.
* E.g., at 10:04:15.250 PM the <code>SECOND</code> is 15.
*/
public final static int SECOND = 13;....
ich lese den Wert "1295437510" als SecondsFrom1970 (ist als REAL-Wert in der DB gespeichert, so sagts der DB-Viewer) und multipliziere ihn dann mit 1000 um bei Millisekunden zu landen.
Danach soll daraus wieder eine vernünftige Zeitabgabe werden.
Im geposteten Code habe ich der Einfachheit halber den Wert direkt gesetzt.
Sandforelle
PS: Ich vermute, dass das eigentliche Programm da irgend was anderes rechnet.