Autor Téma: Prepočet dátumu/času z UTC/GMT na konkrétny lokalizovaný dátum/čas  (Přečteno 136 krát)

Offline martinnr

  • Plnoletý
  • ***
  • Příspěvků: 190
  • Karma: 2
    • Verze Delphi: 7,2009,XE7
Ako postupovať pri potrebe prepočtu dátumu/času z GMT/UTC hodnoty na konkrétnu lokalitu.
Avšak nemusí to byť lokalita podľa aktuálneho nastavenia systému. Ale potreba na konkrétne časové pásmo (Slovensko).
Niečo som našiel cez GetTimeZoneInformation, DateTimeToSystemTime, SystemTimeToTzSpecificLocalTime, SystemTimeToDateTime, ...
potrebujem teda asi najskôr získať info (TTimeZoneInformation) pre Slovensko a potom asi použiť v SystemTimeToTzSpecificLocalTime, a to všetko na rôznych windows jazykových verziách (ruskej, nemeckej, apod).
ako získať tie hodnoty pre Slovensko? Sú v každom Windowse (aktualizovanom) všetky lokality? Dátumy a časy prechodu na letný/zimný čas?

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2754
  • Karma: 105
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
To jsem zvedav co ti kdo odpovi, za mne bych vyuzil
http://docwiki.embarcadero.com/Libraries/Sydney/en/System.DateUtils.TTimeZone.Local.UtcOffset

resp. informaci o tom, ze pro slovensko je to +1/+2 od GMT. Nikdy se mi nepovedlo to co chces obecne udelat, takze se rad poucim.

Embarcadero MVP - Czech republic

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3089
  • Karma: 135
    • Verze Delphi: D2007, XE3, DX10
Nikdy jsem to nepotreboval: vzdycky jsme delalili vsechno v UTC a konvertovali to do/z current nastaveni, takze to ber s rezervou, ale rekl bych, ze pozadovane time zone info budes muset vyloudit pomoci EnumDynamicTimeZoneInformation. Pasma maji Windows tusim v HKLM/Software/Microsoft/Windows NT/CurrentVersion/TimeZones.


Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3089
  • Karma: 135
    • Verze Delphi: D2007, XE3, DX10
Nikdy jsem "cizi" casove pasmo nepotreboval: vzdycky jsme delalili vsechno v UTC a konvertovali to do/z current nastaveni, takze to ber s rezervou, ale rekl bych, ze pozadovane time zone info budes muset vyloudit pomoci EnumDynamicTimeZoneInformation. Pasma maji Windows tusim v HKLM/Software/Microsoft/Windows NT/CurrentVersion/TimeZones.