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:
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:
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 !
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: