https://wiki.freepascal.org/index.php?title=PascalTZ/ru&feed=atom&action=historyPascalTZ/ru - Revision history2024-03-29T05:18:45ZRevision history for this page on the wikiMediaWiki 1.35.6https://wiki.freepascal.org/index.php?title=PascalTZ/ru&diff=137728&oldid=prevZoltanleo: Created page with "{{LanguageBar}} === О компоненте === PascalTZ расшифровывается как «Pascal Time Zone»(часовые пояса Pascal). Это позвол..."2020-07-09T19:41:10Z<p>Created page with "{{LanguageBar}} === О компоненте === PascalTZ расшифровывается как «Pascal Time Zone»(часовые пояса Pascal). Это позвол..."</p>
<p><b>New page</b></p><div>{{LanguageBar}}<br />
<br />
=== О компоненте ===<br />
<br />
PascalTZ расшифровывается как «Pascal Time Zone»(часовые пояса Pascal). Это позволяет вам конвертировать время между местным временем в различных [https://ru.wikipedia.org/wiki/%D0%A7%D0%B0%D1%81%D0%BE%D0%B2%D0%BE%D0%B9_%D0%BF%D0%BE%D1%8F%D1%81 часовых поясах] и [https://ru.wikipedia.org/wiki/%D0%A1%D1%80%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5_%D0%B2%D1%80%D0%B5%D0%BC%D1%8F_%D0%BF%D0%BE_%D0%93%D1%80%D0%B8%D0%BD%D0%B2%D0%B8%D1%87%D1%83 GMT]/[https://ru.wikipedia.org/wiki/%D0%92%D1%81%D0%B5%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%B2%D1%80%D0%B5%D0%BC%D1%8F UTC], с учетом исторических изменений в правилах часовых поясов. PascalTZ использует [https://www.iana.org/time-zones Time Zone Database] (часто называемую <tt>tz</tt> или <tt>zoneinfo</tt>), чтобы определить, как правильно настроивать время для различных часовых поясов. Корректность преобразований часовых поясов в будущем зависит от использования современной базы данных. Осторожно, правила часового пояса могут быть изменены правительствами по всему миру, иногда с очень коротким уведомлением.<br />
<br />
Компонент PascalTZ можно использовать в проектах с чистым FPC или установить как пакет разработки и среды выполнения в Lazarus IDE. Он также поставляется с тестовой средой, набором тестовых векторов преобразования часовых поясов и контрольных примеров для внутренних функций.<br />
<br />
Более подробную информацию можно найти на [https://github.com/dezlov/PascalTZ GitHub:PascalTZ].<br />
<br />
=== Пример ===<br />
<br />
<syntaxhighlight lang=pascal><br />
uses<br />
SysUtils, DateUtils, uPascalTZ;<br />
<br />
var<br />
PascalTZ: TPascalTZ;<br />
DateTime: TDateTime;<br />
<br />
begin<br />
PascalTZ := TPascalTZ.Create;<br />
<br />
// Загружаем базу данных часовых поясов из каталога "tzdata" <br />
// Скачиваем с: https://www.iana.org/time-zones<br />
PascalTZ.DatabasePath := 'tzdata';<br />
<br />
// Текущее местное и UTC-время<br />
DateTime := Now;<br />
WriteLn('Местное время: ', DateTimeToStr(DateTime));<br />
DateTime := LocalTimeToUniversal(DateTime);<br />
WriteLn('UTC-время: ', DateTimeToStr(DateTime));<br />
<br />
// Конвертируем текущее время в Парижское<br />
DateTime := PascalTZ.GMTToLocalTime(DateTime, 'Europe/Paris');<br />
WriteLn('Время в Париже: ', DateTimeToStr(DateTime));<br />
<br />
// Конвертируем Парижское время в Чикагское<br />
DateTime := PascalTZ.Convert(DateTime, 'Europe/Paris', 'America/Chicago');<br />
WriteLn('Время в Чикаго: ', DateTimeToStr(DateTime));<br />
<br />
// Проверяем, существует ли часовой пояс<br />
WriteLn('Africa/Lagos существует? ', PascalTZ.TimeZoneExists('Africa/Lagos'));<br />
WriteLn('Australia/Darwin существует? ', PascalTZ.TimeZoneExists('Australia/Darwin'));<br />
<br />
PascalTZ.Free;<br />
end.<br />
</syntaxhighlight><br />
<br />
=== Авторы ===<br />
<br />
Эта библиотека была первоначально опубликована [[User:Joshy|José Mejuto]] в 2009 году и поддерживается [[User:dezlov|Денисом Козловым]] с 2015 года.<br />
<br />
=== Лицензия ===<br />
<br />
[http://svn.freepascal.org/svn/lazarus/trunk/COPYING.modifiedLGPL Модифицированная] [http://svn.freepascal.org/svn/lazarus/trunk/COPYING.LGPL LGPL] (такая же, как FPC RTL и Lazarus LCL).<br />
<br />
=== Загрузка ===<br />
<br />
[https://github.com/dezlov/PascalTZ/releases GitHub:PascalTZ releases]<br />
<br />
=== Журнал изменений ===<br />
<br />
* Version 1.0 (2009-11-10) [https://github.com/dezlov/PascalTZ/blob/v2.0/CHANGELOG.md]<br />
* Version 2.0 (2016-07-19) [https://github.com/dezlov/PascalTZ/blob/v2.0/CHANGELOG.md]<br />
<br />
=== Отчеты об ошибках ===<br />
<br />
Отчеты об ошибках и предложения могут быть зарегистрированы в [https://github.com/dezlov/PascalTZ/issues GitHub:PascalTZ issues].<br />
<br />
=== См. также ===<br />
<br />
Начиная с 2.6.2, FPC имеет функции <code>LocalTimeToUniversal</code> и <code>UniversalTimeToLocal</code> в модуле <code>dateutils</code> для преобразования между местным временем и временем UTC. Эти функции могут быть полезными, и являться альтернативой для PascalTZ, если вас не интересуют историческая/будущая дата/время (т.е. функции используют текущее летнее время и т.д. для преобразования в/из времени UTC). Эти функции позволяют задавать ручные смещения по отношению к UTC, но тогда вам будет необходимо отслеживать эти смещения вручную - а так за вас это сделает PascalTZ.<br />
<br />
<br />
[[Category:Components]]<br />
[[Category:Lazarus-CCR]]<br />
[[Category:Lazarus]]<br />
[[Category:FPC]]</div>Zoltanleo