Как получить текущее время из разных часовых поясов в Delphi. Если я использую TidSNTP, это даст мне только часовой пояс в моей локали.
Как получить текущее время в другой TimeZone в Delphi?
Ответ 1
Вы можете легко преобразовать местное время в другой часовой пояс с помощью delphi-tzdb (База данных часовых поясов для Delphi).
Ниже приведен пример из документации.
var
LSydney: TTimeZone;
LMadeUpLocalTime, LUniversalTime,
LSydneyTime: TDateTime;
begin
// Get the Sydney time zone
LSydney := TBundledTimeZone.GetTimeZone('Australia/Sydney');
// Encode a local date/time value -- 14th March 2009 at 12:45:00 PM
LMadeUpLocalTime := EncodeDateTime(2009, 03, 14, 12, 45, 00, 00);
// Find out what was the time in Sydney at that moment
LUniversalTime := TTimeZone.Local.ToUniversalTime(LMadeUpLocalTime);
LSydneyTime := LSydney.ToLocalTime(LUniversalTime);
WriteLn(Format('When in my time zone the time was %s, in Sydney it was %s.',
[DateTimeToStr(LMadeUpLocalTime), DateTimeToStr(LSydneyTime)]));
end;