Собственно САБЖ.
Желательно кросс-палтформенный вариант, если есть.
Если такового нет, то кто для чего знает подскажите пожалуйста.
Как узначть текущий часовой пояс?
Модератор: Модераторы
- EmeraldMan
- постоялец
- Сообщения: 149
- Зарегистрирован: 16.10.2008 08:41:51
- Откуда: Белгород
- Контактная информация:
Винда в том числе и ВинЦЕ:
unix
Добавлено спустя 1 минуту 53 секунды:
Ну и для винды модуль windows, а для юникса соответственно Unix....
Добавлено спустя 2 минуты 3 секунды:
В Юникс тиме биас можно узнать так:
Код: Выделить всё
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;
- EmeraldMan
- постоялец
- Сообщения: 149
- Зарегистрирован: 16.10.2008 08:41:51
- Откуда: Белгород
- Контактная информация:
Огромное спасибо! 
