WIN32_FIND_DATA() gibt UTC Zeit

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

WIN32_FIND_DATA() gibt UTC Zeit

Beitragvon AUGE_OHR » Mi, 05. Nov 2014 18:12

hi,

weil es doch mal den BUG mit Directory() > 4 GB gab hatte ich auf die Windows API mit WIN32_FIND_DATA() umgestellt.
nun stelle ich fest das die Uhrzeit von der FILETIME Struktur nach UTC, also -1 Std, angezeigt wird.

wir haben doch jetzt Winterzeit, also "original" und wir liegen in der Zeitzone GMT +1 ...

Frage : "was" muss ich "wie" umrechnen ?

p.s. funktioniert Directory() in der v2.x Release mit > 4 GB und "richtiger" Uhrzeit ?
( PDR 6377 soll in der 2.00.430 geschlossen sein )
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10306
Registriert: Do, 16. Mär 2006 8:55
Wohnort: Hamburg

Re: WIN32_FIND_DATA() gibt UTC Zeit

Beitragvon Werner_Bayern » Mi, 05. Nov 2014 23:44

yep!
Dateianhänge
Aufzeichnen2.PNG
Aufzeichnen2.PNG (2.25 KiB) 1081-mal betrachtet
Aufzeichnen.PNG
Aufzeichnen.PNG (6.94 KiB) 1081-mal betrachtet
es grüßt euch

Werner
Benutzeravatar
Werner_Bayern
Programmier-Gott
Programmier-Gott
 
Beiträge: 1234
Registriert: Sa, 30. Jan 2010 23:58
Wohnort: Niederbayern

Re: WIN32_FIND_DATA() gibt UTC Zeit

Beitragvon AUGE_OHR » Do, 06. Nov 2014 9:26

Werner_Bayern hat geschrieben:yep!
ok, Danke.

so nun, weil mir ja 1 Std "fehlte", das Gegenteil wenn man "SetFileTime" verwendet wird 1 Std. "zu viel" angezeigt :shock:
T32.ZIP
wie TOUCH
setzt Datei auf aktuelles Datum/Zeit
(1.34 KiB) 53-mal heruntergeladen
das kann also dann doch nichts mehr mit "Daylight saving" zu tun haben, oder ?

In meiner TimeZone Applikation habe ja eine GMT -> LocalTime Konvertierung.
Code: Alles auswählen
SystemTimeToTzSpecificLocalTime( ::aTimeZone[ nCity ] [ I_DREI ], oSt, oLt )
ich kann mir aber irgendwie nicht vorstellen das man FileTime() "so" anpassen soll/muss das man die lokale Zeitzone berücksichtigen muss.

Frage : wie ist es bei Emails, Webseiten oder FTP aus. wird da GMT oder UTC verwendet ?
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10306
Registriert: Do, 16. Mär 2006 8:55
Wohnort: Hamburg

Re: WIN32_FIND_DATA() gibt UTC Zeit

Beitragvon AUGE_OHR » Fr, 07. Nov 2014 21:08

hi,

ich habe mir nun mein TimeZone Modul genommen und wollte damit meine +- 1 Std. korrigieren.
dazu wir nun zuerst unter
Code: Alles auswählen
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
der "StandardName" ermittelt. damit kann man dann unter
Code: Alles auswählen
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
nach dem entsprechenden Eintrag suchen.
jetzt müsste man mit der "TIME_ZONE_INFORMATION" Stuctur TZI verarbeiten ...

nun habe ich mich gefragt ob das alles notwendig ist ...
Code: Alles auswählen
FUNCTION UTC2Local( cTIME )
LOCAL cRet := "00:00:00"
LOCAL nSec := HMS2Sec( cTIME )                   // -> Sekunden
LOCAL cLoc := LocalTime()                        // 07.11.14 05:20:46:98
LOCAL cSys := SystemTime()                       // 07.11.14 04:20:46:98
LOCAL nLoc := HMS2Sec(SUBSTR(cLoc,10,8))
LOCAL nSys := HMS2Sec(SUBSTR(cSys,10,8))
   //
   // bislang nur bei gleichem Tag
   //
   IF SUBSTR(cLoc,1,8) = SUBSTR(cSys,1,8)
      cRet := SEC2HMS(nSec-(nLoc-nSys))
   ENDIF
RETURN cRet
wenn ich von der "LocalTime" die "SystemTime" abziehe komme ich doch genau auf die GMT Differenz, oder ?

p.s. Sommerzeit hab ich damit noch nicht ausprobiert ...
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10306
Registriert: Do, 16. Mär 2006 8:55
Wohnort: Hamburg


Zurück zu Windows, API

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast