Anmelden

View Full Version : IFS API`s



Frank Hildebrandt
21-03-05, 14:05
Hallo,

eine Frage zum Thema IFS API`s. Mit der folgenden C-Routine ermittle ich mir die Informationen zu 'Datum/Uhrzeit der Datenänderung' eines Objektes im IFS. Jetzt bekomme ich bei einem Objekt im IFS, bei dem im Feld 'Datum/Uhrzeit der Datenänderung' der Wert 31.01.05 zu sehen ist, den Wert 20050201 zurück. Hat hier jemand eine Idee?

Frank

long int RetrieveEntryChangeTime(char *path) {
struct stat info;
struct tm date;
if (stat(path, &info) != 0)
return -1;
else {
gmtime_r(&info.st_mtime, &date);
return (date.tm_mday) + ((date.tm_mon + 1) * 100) +((date.tm_year + 1900) * 10000);
}
}

Fuerchau
21-03-05, 14:11
Das hängt ein bisschen von der Uhrzeit ab.
Zeitmarken an IFS-Dateien (auch Windows) sind IMMER GM-Time (Greenwich-Mean-Time).
Möchtest du die lokale Zeit, verwenden "localtime()", dieser berücksichtigt QUTCOFFSET, "gmtime()" gibt den tatsächlichen Zeitstempel.

Differenzen kann es immer geben, wenn die Zeitzone incl. Sommer-/Winterzeit zwischen OS/400 und Windows nicht passt.

Winterzeit: QUTCOFFSET +0100
Sommerzeit: QUTCOFFSET +0200

Frank Hildebrandt
21-03-05, 14:36
Hallo,

localtime() ist offensichtlich besser. Jetzt gibts auch keine Probleme mehr mit dem (Nachbarn) Kunden. Danke

Frank

Fuerchau
21-03-05, 14:47
Aber denk unbedingt an die Sommer-/Winterzeitumstellung und an die Korrektur von QUTCOFFSET. Die reine Systemzeit-Einstellung reicht da nämlich nicht aus !!!