Scalabium Software |
|
| Knowledge for your independence'. | |
#134: How read the daylight saving time? |
|
Sometimes from code you want to find out if MS Windows is operating in saylight saving time. For example, I used this code in own GroupMail because in message header you must include a timestamp. The code below allow to solve this task: uses Windows;
const
TIME_ZONE_ID_UNKNOWN = 0;
TIME_ZONE_ID_STANDARD = 1;
TIME_ZONE_ID_DAYLIGHT = 2;
var
tz : TTimeZoneInformation;
begin
case GetTimeZoneInformation(tz) of
TIME_ZONE_ID_STANDARD: ShowMessage(tz.StandardName);
TIME_ZONE_ID_DAYLIGHT: ShowMessage(tz.DaylightName);
else
ShowMessage('Unknown state');
end;
end;
Also I want to say that similar code you can use for BIAS reading (offset to UTC/GMT in minutes of local time zone): function GetTimeZoneBias: Integer;
var
tz: TTimeZoneInformation;
begin
case GetTimeZoneInformation(tz) of
TIME_ZONE_ID_STANDARD: Result := -(tz.StandardBias + tz.Bias) div (24*60);
TIME_ZONE_ID_DAYLIGHT: Result := -(tz.DaylightBias + tz.Bias) div (24*60);
else
Result := 0;
end;
end;
If the result is 0 then time is a GMT. Else you'll receive a difference as positive or negative value.
|
|
Copyright© 1998-2025, Scalabium
Software. All rights reserved. |