PascalTZ/ru
English · Русский
О компоненте
PascalTZ расшифровывается как «Pascal Time Zone»(часовые пояса Pascal). Это позволяет вам конвертировать время между местным временем в различных часовых поясах и GMT/UTC, с учетом исторических изменений в правилах часовых поясов. PascalTZ использует Time Zone Database (часто называемую tz или zoneinfo), чтобы определить, как правильно настроивать время для различных часовых поясов. Корректность преобразований часовых поясов в будущем зависит от использования современной базы данных. Осторожно, правила часового пояса могут быть изменены правительствами по всему миру, иногда с очень коротким уведомлением.
Компонент PascalTZ можно использовать в проектах с чистым FPC или установить как пакет разработки и среды выполнения в Lazarus IDE. Он также поставляется с тестовой средой, набором тестовых векторов преобразования часовых поясов и контрольных примеров для внутренних функций.
Более подробную информацию можно найти на GitHub:PascalTZ.
Пример
uses
SysUtils, DateUtils, uPascalTZ;
var
PascalTZ: TPascalTZ;
DateTime: TDateTime;
begin
PascalTZ := TPascalTZ.Create;
// Загружаем базу данных часовых поясов из каталога "tzdata"
// Скачиваем с: https://www.iana.org/time-zones
PascalTZ.DatabasePath := 'tzdata';
// Текущее местное и UTC-время
DateTime := Now;
WriteLn('Местное время: ', DateTimeToStr(DateTime));
DateTime := LocalTimeToUniversal(DateTime);
WriteLn('UTC-время: ', DateTimeToStr(DateTime));
// Конвертируем текущее время в Парижское
DateTime := PascalTZ.GMTToLocalTime(DateTime, 'Europe/Paris');
WriteLn('Время в Париже: ', DateTimeToStr(DateTime));
// Конвертируем Парижское время в Чикагское
DateTime := PascalTZ.Convert(DateTime, 'Europe/Paris', 'America/Chicago');
WriteLn('Время в Чикаго: ', DateTimeToStr(DateTime));
// Проверяем, существует ли часовой пояс
WriteLn('Africa/Lagos существует? ', PascalTZ.TimeZoneExists('Africa/Lagos'));
WriteLn('Australia/Darwin существует? ', PascalTZ.TimeZoneExists('Australia/Darwin'));
PascalTZ.Free;
end.Авторы
Эта библиотека была первоначально опубликована José Mejuto в 2009 году и поддерживается Денисом Козловым с 2015 года.
Лицензия
Модифицированная LGPL (такая же, как FPC RTL и Lazarus LCL).
Загрузка
Журнал изменений
Отчеты об ошибках
Отчеты об ошибках и предложения могут быть зарегистрированы в GitHub:PascalTZ issues.
См. также
Начиная с 2.6.2, FPC имеет функции LocalTimeToUniversal и UniversalTimeToLocal в модуле dateutils для преобразования между местным временем и временем UTC. Эти функции могут быть полезными, и являться альтернативой для PascalTZ, если вас не интересуют историческая/будущая дата/время (т.е. функции используют текущее летнее время и т.д. для преобразования в/из времени UTC). Эти функции позволяют задавать ручные смещения по отношению к UTC, но тогда вам будет необходимо отслеживать эти смещения вручную - а так за вас это сделает PascalTZ.
From the Free Pascal wiki, page "PascalTZ/ru", as it stood on 2020-07-09 after a change by Zoltanleo, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
