Страница 1 из 1

UTC time to Local Time

Добавлено: 2006-09-21 6:54:03
Urgor
Как можно врямя в UTC преобразовать в локальное время на системе? Или хотя бы как получить смещение для зимнего/летнего времени?

Добавлено: 2006-09-22 8:45:31
trubb
из реестра можно выдрать часовой пояс типа GMT+5

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones

Добавлено: 2006-09-22 9:19:24
Urgor
Не. Надо именно смещение с учетом летнего/зимнего времени. Пока сделал так:

Код: Выделить всё

Function IsSunnyTime:boolean;
var
  Year, Month, Day, DOW: Word;
  sdate, wdate : Tdatetime;
begin
  result:=false;
  DecodeDate(now,Year,month,day);
  DecodeDateFully(EncodeDate(Year, 3, 31), Year, Month, Day, DOW);
  sdate := EncodeDate(Year, 3, 32 - DOW);
  DecodeDateFully(EncodeDate(Year, 10, 31), Year, Month, Day, DOW);
  wdate := EncodeDate(Year, 10, 32 - DOW);
  if (now >= sdate) and (now < wdate) then result:=true;
end;

function GetTimeZone: integer;
var
  TimeZone: TTimeZoneInformation;
begin
  GetTimeZoneInformation(TimeZone);
  Result := TimeZone.Bias div -60;
  if IsSunnyTime then Result:=TimeZone.Bias div -60 +1;
end;