Klassen Unterschiedliche Zeiten bei DATE

GianaSisters

Bekanntes Mitglied
Hallo Zusammen,

ich habe ein ziemlich blödes Problem. Das Ziel ist es einen Timer zu haben der in bestimmten abständen den Inhalt von gerade erstellten Dateien in eine Datenbank reinschreibt. Das klappt auch alles so gut, leider gibt es ein winziges aber schwerwiegendes Problem.

Einmal wird durch:
Java:
 File f = new File(dateiName);
        datumLong = f.lastModified();

der Longwert von der Datei rausgefunden, wann sie zuletzt Modifiziert wurde (natürlich entspricht das dann auch dem Erstellungsdatum von der Datei). Sagen wir mal bei meinem Beispiel hab ich ein Erstellungsdatum 25.08.2011 12:17:xx
Die Zahl die mir ausgewurfen wurde ist: 1314267431754
Ich hab nun versucht relativ zeitgleich (+- 5 Sekunden) meine Systemzeit in Long anzeigen zu lassen (nicht in Millisekunden, darauf komms auch bei mir nicht an) und der Wert war: 1314263789000
In etwa sind es 65 Minuten unterschied. Ich finde es sehr komisch, dass die Zeit solch einen unterschiedlichen Wert hat. Hier der Code wie ich auf die Systemzeit komme:
Java:
    Date now = new Date();
         java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd.MM.yyyy");
         java.text.SimpleDateFormat sdf2 = new java.text.SimpleDateFormat("HH:mm:ss");
         aktDatum = sdf.format(now);
         aktUhrzeit = sdf2.format(now);
         aktDatumUhrzeit = DatumUmformen(aktDatum, aktUhrzeit);

Java:
  public Long DatumUmformen(String stringDatum, String stringUhrzeit) throws ParseException{
        // Formt einen dd.mm.yyyy ins Long format um !!
        
        
        Long datum = null;
        Long uhrzeit = null;
        DateFormat formatter ;
        DateFormat formatterUhr = null;
        Date date ;
        Date dateUhr ;
        // Problem - die Stunde ist um eine Stunde unterschied da.
        if (stringUhrzeit.length() == 5) formatterUhr = new SimpleDateFormat("HH:mm");
        if (stringUhrzeit.length() == 8) formatterUhr = new SimpleDateFormat("HH:mm:ss");
   
        formatter = new SimpleDateFormat("dd.MM.yyyy");       
        date = (Date)formatter.parse(stringDatum);
        dateUhr = (Date)formatterUhr.parse(stringUhrzeit);
        datum =date.getTime();
        uhrzeit = dateUhr.getTime();
        datum = datum + uhrzeit;
        
        // Dateien durchlaufen mit jetzigem Datum
           // Alle durchgehen, ob das Datum da so stimmt, wenn ja dann anzeigen
        
        return datum;

Die Frage ist, wer kann einen Fehler finden - natürlich fände ich es klasse wenn am Ende meine Systemzeit auch der Zeit entspricht wann die Datei erstellt wurde damit ich dann immer die aktuellste Datei in die Datenbank holen kann... Würde mich sehr über Hilfe freuen,
Giana !
 
Zuletzt bearbeitet:

Michael...

Top Contributor
Die Zahl die mir ausgewurfen wurde ist: 1314267431754
Ich hab nun versucht relativ zeitgleich (+- 5 Sekunden) meine Systemzeit in Long anzeigen zu lassen (nicht in Millisekunden, darauf komms auch bei mir nicht an) und der Wert war: 1314263789000
In etwa sind es 65 Minuten unterschied.
Naja, bei mir gibt es nur ein Delta von knapp 60 min ;-)

Wirf mal einen Blick in die API Doku zu lastModified() und was das zurückgegeben wird:
...
A long value representing the time the file was last modified, measured in milliseconds since the epoch (00:00:00 GMT, January 1, 1970)...
Zu beachten GMT. Vermute mal, dass Dein Rechner nicht in Greenwich bzw. in der selben Zeitzone steht oder die Systemzeit auf Greenwich Zeit eingestellt ist ;-)
 

Michael...

Top Contributor
Wobei das - wenn ich so darüber nachdenke - gar keinen Unterschied machen darf, wenn Du die long Werte miteinander vergleichst. ... und auch nicht macht.:oops:

Was ich nicht verstehe ist, warum Du das aktuelle Datum erst in zwei formatierte Strings umwandelst um dann daraus wieder ein Datum zu machen um dieses in einen long zu wandeln???
Darin steckt übrigens auch Dein Fehler in Zeile 16 bis 20 des zweiten Codes.
 

GianaSisters

Bekanntes Mitglied
Hallo Michael,

an einer anderen Stelle hab ich nun 3600000 vom Longwert abgezogen (was einer Stunde entspricht). Allerdings hab ich ein mulmiges Gefühl, da es ja eine Sommerzeit gibt und es dadurch vielleicht zu Problemen kommen könnte. Wieso wird meine Systemzeit nicht in der allgemeinen Zeit angegeben und die von Dateien schon ? Muss ich evtl. auch die Zeitzone mit ausgeben lassen und mit dieser dann rumrechnen ? Gibts da schon fertige Klassen für ?:)

Warum ich 2 Strings habe - einmal für die Zeit und einmal fürs Datum ? Das liegt daran, weil ich das Datum in eine Datei speichere und sie später wieder reinlade. Daher werden sie ja eh als String gespeichert bzw müssen sie geladen werden. Vielleicht ist das die falsche Stelle um sie erst so spät ins Long zu überführen (hab keine IT Ausbildung und kenne daher die Programmiergesetze nicht wirklich).
Wieso steckt in den Zeilen Fehler ? Er gibt ja einigermaßen korrekte Longwerte raus ?!
Vielen Dank schonmal,
Giana
 

Michael...

Top Contributor
Den Fehler rechnest Du Dir selber rein. Gib doch einfach mal
Code:
now.getTime()
aus und vergleiche es mit
Code:
aktDatumUhrzeit

Der gepostete Code macht so wenig Sinn da Du an den long Wert des aktuelle Datums auch per
Code:
new Date().getTime()
kommen würdest.

Grundsätzlich besteht ein Datum aus Tag(esdatum) und Uhrzeit. Wenn das Datum formatiert werden soll warum also die Aufteilung in zwei Strings?
 

GianaSisters

Bekanntes Mitglied
Danke, es klingt sehr logisch was Du schreibst. Ich werde es später mal testen... Das Problem war wie gesagt, dass der Benutzer in einem anderen Teil des Programms ein Datum einstellen kann und ich dadurch diese Methode übernommen habe. Wenn es weitere Probleme gibt meld ich mich nochmal... Schonmal super vielen Dank !!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
OnDemand Unterschiedliche jar Dateien zusammen führen Allgemeine Java-Themen 8
rosima26 Unterschiedliche Werte bei return/print Allgemeine Java-Themen 12
M Warum gibt es Unterschiedliche Kommentar Zeichen Allgemeine Java-Themen 15
Y Java Methoden unterschiedliche Zahlenreihen Allgemeine Java-Themen 2
P Static Variable -> unterschiedliche Werte? Allgemeine Java-Themen 1
P Berechnungen: unterschiedliche Rundungsfehler bei Long? Allgemeine Java-Themen 3
M Zwei unterschiedliche JAR Dateien mit ANT erstellen Allgemeine Java-Themen 8
J unterschiedliche Dateiformate verarbeiten Allgemeine Java-Themen 7
J unterschiedliche Objekte, selbe getter und setter Allgemeine Java-Themen 15
G Methoden Unterschiedliche viele Parameter Allgemeine Java-Themen 17
A TXT File einlesen unterschiedliche Zeilenlänge Allgemeine Java-Themen 9
P Unterschiedliche Clone- Methoden Allgemeine Java-Themen 5
G Input/Output URLDecoder.decode - Unterschiedliche Ergebnisse Windows / Linux Allgemeine Java-Themen 2
A md5 liefert unterschiedliche Testsummen? Allgemeine Java-Themen 4
M Unterschiedliche Java-Versionen Allgemeine Java-Themen 5
B hashtable für unterschiedliche Typen - mit Generics Allgemeine Java-Themen 8
S Zugriff auf unterschiedliche JREs Allgemeine Java-Themen 7
G Abstrakte Fabrik für unterschiedliche Signaturen? Allgemeine Java-Themen 7
L unterschiedliche Größe beim serialisieren eines Objektes! Allgemeine Java-Themen 6
W Unvollständige und unterschiedliche CharSets Allgemeine Java-Themen 3
L Unterschiedliche mails (Daten aus JTable) schicken Allgemeine Java-Themen 14
U Transparent Buttons - unterschiedliche Java-Versionen Allgemeine Java-Themen 8
M unterschiedliche Betriebssysteme abfangen Allgemeine Java-Themen 3
V Bilder bei bestimmten Zeiten wechseln, bitte um Hilfe Allgemeine Java-Themen 5
P RegEx für Zeiten Allgemeine Java-Themen 7
missy72 Methoden Calendar/Date Countdown Allgemeine Java-Themen 9
J Simple Date Format Alternativen bitte um Code Allgemeine Java-Themen 14
FRI3ND Datentypen Date-Array sortieren - Text mitnehmen? Allgemeine Java-Themen 7
S Seltsames Ergebnis mit Date-Klasse Allgemeine Java-Themen 6
MiMa Date aus einer ArrayList<Date> holen ?? Allgemeine Java-Themen 5
M JDBC DATE 0000-00-00 kann nicht ausgegeben werden Allgemeine Java-Themen 3
L Erste Schritte Java Date Format Pattern bestimmten Allgemeine Java-Themen 2
Blender3D AWT Fehlerhafte Zeit bei Calender und Date DateFormat Allgemeine Java-Themen 8
P Date und Time in Java Allgemeine Java-Themen 7
B Swing Date Spinner Allgemeine Java-Themen 2
Grejak Date und SimpleDateFormat Allgemeine Java-Themen 6
D Timestamp to Date, ergibt falsches ergebnis Allgemeine Java-Themen 5
M massenhaft verschiedene Date-Pattern Allgemeine Java-Themen 3
N SimpleDateFormat: Unparseable date Allgemeine Java-Themen 5
Madlip Erste Schritte Probleme mit Date() Allgemeine Java-Themen 6
T String in Date parsen (*ohne* bekanntes Format) Allgemeine Java-Themen 8
N java.util.Date - Zeit auf 00:00 setzen Allgemeine Java-Themen 3
Z new Date() liefert falsche Uhrzeit Allgemeine Java-Themen 12
G Calendar/Date arithmetic Allgemeine Java-Themen 3
J Datentypen Problem mit Date-Object Allgemeine Java-Themen 2
B Unix-Timestamp > Date macht Probleme. Allgemeine Java-Themen 3
M Object-Instanz in Date übersetzen Allgemeine Java-Themen 6
E Seltsamer aufruf von java.util.Date.toString() Allgemeine Java-Themen 3
hdi JTable: Sortierung von Date-Objekten Allgemeine Java-Themen 4
Joy String in Date umwandeln Allgemeine Java-Themen 2
K String zu Date kovertieren Allgemeine Java-Themen 3
S Zeitserver Abfragen und in Date speichern Allgemeine Java-Themen 5
0 Datum in Java Date umwandeln Allgemeine Java-Themen 4
C Datum erstellen für SQL Format Date Allgemeine Java-Themen 3
R Moeglichst viele Datumsstrings in Date Objekte konvertieren? Allgemeine Java-Themen 3
B Date Addition Allgemeine Java-Themen 2
H2SO3- Date "18.11.2002 20:02:33" trotz Locale.GERMAN nic Allgemeine Java-Themen 9
H2SO3- Exception beim date parsen des Jahres 00 Allgemeine Java-Themen 6
H2SO3- merken versch. Date Typen + erlaubte und unerlaubte kombinat Allgemeine Java-Themen 4
H2SO3- date mit pm and am parsen Allgemeine Java-Themen 3
G double in Date Allgemeine Java-Themen 5
S Date Objekt von voller Stunde Allgemeine Java-Themen 3
M Date objekt als 00.00.0000 ausgeben Allgemeine Java-Themen 2
MQue Date, Timestamp, Millisecond Allgemeine Java-Themen 3
alexpetri Date Parsen Allgemeine Java-Themen 3
F Problem mit TimeStamp to Date Allgemeine Java-Themen 8
M Date Range auswerten und die Monate berechnen Allgemeine Java-Themen 2
DEvent min. Jahr von Date Allgemeine Java-Themen 2
H Wer kennt sich mit der Klasse Date aus? Allgemeine Java-Themen 3
G Date wird nicht richtig geparsed Allgemeine Java-Themen 3
H zwei Date Variablen überschreiben sich Allgemeine Java-Themen 2
P von Date zu Timestamp Allgemeine Java-Themen 10
H Date in String wandeln un dumgekehrt. Allgemeine Java-Themen 17
P SimpleDateFormat/Date Allgemeine Java-Themen 4
N Date & RMI Problem Allgemeine Java-Themen 3
V Date und Calendar . Allgemeine Java-Themen 3
P sql.Date -> the constructor Date() is undefined! Allgemeine Java-Themen 3
M String nach Date Allgemeine Java-Themen 4
E XML dateTime String in Date mit SimpleDateFormat umwandeln Allgemeine Java-Themen 5
K Date formatieren Allgemeine Java-Themen 7
L String ==> Date ==> GregorianCalendar Allgemeine Java-Themen 3
G Date-Objekt aus Datums-String erstellen Allgemeine Java-Themen 6
F Spezialfrage zu Date Allgemeine Java-Themen 5
L-ectron-X Zeitspanne mit Date und DateFormat Allgemeine Java-Themen 7
B String to Date Allgemeine Java-Themen 7
K Date: getTime immer gleich Allgemeine Java-Themen 4
B Java.Date -> Delphi.TDateTime Allgemeine Java-Themen 4
D Datum und Zeit - Date, Calendar oder GregorianCalender ? Allgemeine Java-Themen 13
P Alter in Jahren aus Date-Objekt ermitteln Allgemeine Java-Themen 5
T Datum als String in Date umwandeln Allgemeine Java-Themen 3
R Date Tage abziehen Allgemeine Java-Themen 3
I java.util.Date - die 1970-Untergrenze Allgemeine Java-Themen 3
T Probleme mit Date und Calendar Allgemeine Java-Themen 7
W Mit Date-Objekten arbeiten Allgemeine Java-Themen 10

Ähnliche Java Themen

Neue Themen


Oben