1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| function UTCToSystemTime(UTC : TDateTime) : TDateTime; //UTC ou GMT ---> Local time
var TimeZoneInf : _TIME_ZONE_INFORMATION;
UTCTime,LocalTime: TSystemTime;
begin
if GetTimeZoneInformation(TimeZoneInf) < $FFFFFFFF then
begin
DatetimetoSystemTime(UTC,UTCTime);
if SystemTimeToTzSpecificLocalTime(@TimeZoneInf,UTCTime,LocalTime) then
begin
result := SystemTimeToDateTime(LocalTime);
end else result := UTC;
end else result := UTC;
end;
function TzSpecificLocalTimeToSystemTime(lpTimeZoneInformation: PTimeZoneInformation;
var lpLocalTime, lpUniversalTime: TSystemTime): BOOL; stdcall; external kernel32 name 'TzSpecificLocalTimeToSystemTime';
{$EXTERNALSYM TzSpecificLocalTimeToSystemTime}
function SystemTimeToUTC(Sys : TDateTime):TDateTime; ////Local time ---> UTC ou GMT
var TimeZoneInf : _TIME_ZONE_INFORMATION;
SysTime,LocalTime: TSystemTime;
begin
if GetTimeZoneInformation(TimeZoneInf) < $FFFFFFFF then
begin
DatetimetoSystemTime(Sys, SysTime);
if TzSpecificLocalTimeToSystemTime(@TimeZoneInf,SysTime,LocalTime) then
result:=SystemTimeToDateTime(LocalTime)
else result:=Sys;
end else result:=Sys
end; |
Partager