Как узначть текущий часовой пояс?

Модератор: Модераторы

Как узначть текущий часовой пояс?

Сообщение EmeraldMan » 02.06.2009 14:36:18

Собственно САБЖ.
Желательно кросс-палтформенный вариант, если есть.
Если такового нет, то кто для чего знает подскажите пожалуйста.
Аватара пользователя
EmeraldMan
постоялец
 
Сообщения: 149
Зарегистрирован: 16.10.2008 08:41:51
Откуда: Белгород

Re: Как узначть текущий часовой пояс?

Сообщение Mr.Smart » 02.06.2009 22:48:57

Винда в том числе и ВинЦЕ:
Код: Выделить всё
procedure TimeZoneInit;
var
t: TTimeZoneInformation;
b: Integer;
begin
  IsWinter:=GetTimeZoneInformation(t)=TIME_ZONE_ID_STANDARD;
  if IsWinter then
   begin
    b:=(t.Bias+t.StandardBias)*(-1);
    ZoneName:=UTF8Encode(t.StandardName);
   end
  else
   begin
    b:=(t.Bias+t.DaylightBias)*(-1);
    ZoneName:=UTF8Encode(t.DaylightName);
   end;
  if b>0 then
   ZoneName:=ZoneName+'  (UTC +'
  else
   ZoneName:=ZoneName+'  (UTC -';
  b:=abs(b);
  ZoneName:=ZoneName+Format('%d:%0.2d)',[b div 60,b-(b div 60)*60]);
  if IsWinter then
   ZoneName:=ZoneName+' Зима'
  else
   ZoneName:=ZoneName+' Лето';
end;

unix
Код: Выделить всё
procedure TimeZoneInit;
begin
  IsWinter:=not tzdaylight;
  if IsWinter then
   ZoneName:=tzname[tzdaylight]+' - Зима'
  else
   ZoneName:=tzname[tzdaylight]+' - Лето'
end;


Добавлено спустя 1 минуту 53 секунды:
Ну и для винды модуль windows, а для юникса соответственно Unix....

Добавлено спустя 2 минуты 3 секунды:
В Юникс тиме биас можно узнать так:
Код: Выделить всё
function TimeZoneBias: integer;
var
  t: TTime_T;
  UT: TUnixTime;
begin
  __time(@T);
  localtime_r(@T, UT);
  Result := ut.__tm_gmtoff div 60;
end;
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Как узначть текущий часовой пояс?

Сообщение EmeraldMan » 03.06.2009 00:26:52

Огромное спасибо! :)
Аватара пользователя
EmeraldMan
постоялец
 
Сообщения: 149
Зарегистрирован: 16.10.2008 08:41:51
Откуда: Белгород


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Рейтинг@Mail.ru