... Bewegungen in verschiedenen Zeitzonen
Verschiedene Zeitzonen beziehen sich normalerweise auf die Greenwich Mean Time (GMT) oder auch "Null Meridian Zeit".
Um GMT zu berechnen gehen wir wie folgt vor :
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| uses Windows,Sysutils....;
function GetGMT : TDateTime; var SystemTime : _SystemTime; TimeZoneInfo : Time_Zone_Information; begin DecodeTime(now,SystemTime.wHour,SystemTime.wMinute,SystemTime.wSecond,SystemTime.wMilliSeconds); GetTimeZoneInformation(TimeZoneInfo); SystemTime.wHour := SystemTime.wHour + TimeZoneInfo.Bias div 60 + TimeZoneInfo.DaylightBias div 60; if SystemTime.wHour > 65000 then SystemTime.wHour := SystemTime.wHour + 24; if SystemTime.wHour >= 24 then SystemTime.wHour := SystemTime.wHour -24; Result := EncodeTime(SystemTime.wHour,SystemTime.wMinute,SystemTime.wSecond,SystemTime.wMilliSeconds); end; |
Ein Beispielaufruf könnte so ausssehen :
Delphi-Quelltext
1:
| Showmessage(' Die NATO ZULU Zeit ist : ' + TimeToStr(GetGMT) + ' Uhr'); |
Ebenso kann man natürlich andere Zeitzonen berechen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| function SetToNewTimeZone(Bias, DayLightBias : Integer; GMT : TDateTime) : TDateTime; var SystemTime : _SystemTime; TimeZoneInfo : Time_Zone_Information; begin DecodeTime(GMT,SystemTime.wHour,SystemTime.wMinute,SystemTime.wSecond,SystemTime.wMilliSeconds); SystemTime.wHour := SystemTime.wHour + Bias div 60 + DayLightBias div 60; if SystemTime.wHour > 65000 then SystemTime.wHour := SystemTime.wHour + 24; if SystemTime.wHour >= 24 then SystemTime.wHour := SystemTime.wHour -24; Result := EncodeTime(SystemTime.wHour,SystemTime.wMinute,SystemTime.wSecond,SystemTime.wMilliSeconds); end; |
Und auch hierzu ein Beispiel :
Delphi-Quelltext
1: 2:
| Showmessage('In New York ist es gerade : ' + Timetostr(SetToNewTimeZone(-300,60,GetGMT)) + ' Uhr'); |
Ich hoffe ich konnte mit meinem kleinen Beitrag etwas helfen
Christian Wahl
Man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug.