Scalabium Software

SMExport advertising
Knowledge for your independence'.
Home Delphi and C++Builder tips


#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.


Published: December 12, 2001

See also
 
DBISAM Password Recovery
Clarion to Text converter
Metafile Convert
Protected Storage Viewer
Mail parser (ActiveX)
Paradox Viewer
Fast Document Viewer
SMMsg suite
ABA Database Convert
Excel Reader (dll)
 
 


Contact to webmaster

 

Borland Software Code Gear Scalabium Delphi tips

Copyright© 1998-2025, Scalabium Software. All rights reserved.
webmaster@scalabium.com

SMExport advertising