![]() |
Referenz Zeitzone ohne Sommer/Winterzeit ?
Hi,
mal eine Frage ist GMT Zeit eigentlich ohne Sommer-/Winterzeit ? oder gibt es eine Zeitzone die man als Referenz nehmen kann ? Ich will daten mit einem eindeutigen Zeitstempel speichern, aber z.B. wird ja in den USA die Winter/Sommer-Zeit anderst umgestellt als bei uns ... gibts es für Zeit eine eindeutige bezugsgröße von der man einfach auf die zeit des jeweiligen landes umrechnen kann ? Danke Ralf |
Re: Referenz Zeitzone ohne Sommer/Winterzeit ?
Hai th_bone,
die UTC ist ohne "regionale" Zeitänderungen (Sommer-/Winterzeit). |
Re: Referenz Zeitzone ohne Sommer/Winterzeit ?
Die GMT ist IMHO schon ohne Wechsel von Sommer-/Winterzeit.
MfG Binärbaum |
Re: Referenz Zeitzone ohne Sommer/Winterzeit ?
Danke für die schnelle Antwort
Ralf |
Re: Referenz Zeitzone ohne Sommer/Winterzeit ?
Es gibt die lokale Zeit (z.B.: GMT+1) und die Systemzeit (Coordinated Universal Time=UTC).
Die Funktion Now sieht so aus:
Delphi-Quellcode:
Würde man statt GetLocalTime die Funktion GetSystemTime aufrufen, würde man die Zeit in UTC
function Now: TDateTime;
var SystemTime: TSystemTime; begin GetLocalTime(SystemTime); // <=== with SystemTime do Result := EncodeDate(wYear, wMonth, wDay) + EncodeTime(wHour, wMinute, wSecond, wMilliseconds); end; bekommen.
Delphi-Quellcode:
2 Rechner (einer in Deutschland, einer in China) müssen das gleiche Ergebnis von NowUTC ekommen, wenn die Funktion gleichzeitig aufgerufen wird. (Uhrzeitfehler & Relativitättheorie mal unberücksichtigt)
function NowUTC: TDateTime;
var SystemTime: TSystemTime; begin GetSystemTime(SystemTime); // <=== with SystemTime do Result := EncodeDate(wYear, wMonth, wDay) + EncodeTime(wHour, wMinute, wSecond, wMilliseconds); end; Der Unterschied zwischen lokaler Zeit und UTC bekommt man mit: GetTimeZoneInformation |
Re: Referenz Zeitzone ohne Sommer/Winterzeit ?
Zitat:
Delphi-Quellcode:
function NowUTC: TDateTime;
var SystemTime: TSystemTime; begin GetSystemTime(SystemTime); Result := SystemTimeToDateTime (SystemTime); end; function UtcTOLocalDateTime (aUTC : TDateTime) : TDateTime; var tzi : TIME_ZONE_INFORMATION; utc : TSystemTime; localtime : TSystemTime; begin DateTimeToSystemTime(aUTC,utc); GetTimeZoneInformation(tzi); SystemTimeToTzSpecificLocalTime(@tzi,utc,localtime); Result := SystemTimeToDateTime(localtime); end; |
Re: Referenz Zeitzone ohne Sommer/Winterzeit ?
Und im umgedrehten Fall so:
Delphi-Quellcode:
[...]
interface function TzSpecificLocalTimeToSystemTime(lpTimeZoneInformation: PTimeZoneInformation; var lpLocalTime, lpUniversalTime: TSystemTime): BOOL; stdcall; {$EXTERNALSYM TzSpecificLocalTimeToSystemTime} function LocalDateTimeToUTC(aLocal : TDateTime) : TDateTime; [...] implementation function TzSpecificLocalTimeToSystemTime; external kernel32 name 'TzSpecificLocalTimeToSystemTime'; function LocalDateTimeToUTC(aLocal : TDateTime) : TDateTime; var tzi : TIME_ZONE_INFORMATION; utc : TSystemTime; localtime : TSystemTime; begin DateTimeToSystemTime(aLocal, localtime); GetTimeZoneInformation(tzi); TzSpecificLocalTimeToSystemTime(@tzi, localtime, utc); Result := SystemTimeToDateTime(utc); end; [...] |
Re: Referenz Zeitzone ohne Sommer/Winterzeit ?
Für TzSpecificLocalTimeToSystemTime und SystemTimeToTzSpecificLocalTime wird laut MSDN WinXP benötigt. Gibt es entsprechende Funktionen auch für Win9x, NT und 2000?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz