Историческое летнее время в Windows - PullRequest
2 голосов
/ 12 августа 2010

Существует ли в Windows простой способ (с использованием Delphi, а не .NET) преобразовать время по Гринвичу в местное время с настройками перехода на летнее время.

Данные возвращаются за 12 лет, поэтому необходимо учитывать изменения дат начала / окончания летнего времени за это время.

Ответы [ 3 ]

2 голосов
/ 20 августа 2010

Забавно, очень похожий вопрос появился вчера в LinkedIn.

Вот ответ, который я дал там:

Часовые пояса несколько изменчивы, особенно когда начинается переход на летнее время /Заканчивается.

Эта база данных (http://en.wikipedia.org/wiki/Tz_database) определяет часовые пояса, и иногда он меняется, поэтому вам также необходим механизм обновления.

Существует реализация .NET, которую можно обернуть или использовать в качестве основы: http://www.codeproject.com/KB/locale/zoneinfo_dotnet_api.aspx

Я не уверен, насколько актуальна эта реализация Delphi: http://sourceforge.net/projects/delphitz/

Сообщите нам о вашей окончательной реализации.

Редактировать: Упомянутый выше проект кажется пустым, поэтому я продолжил поиск и нашел проект Delphi TimeZone Database., чтобы оставаться активным.

- jeroen

2 голосов
/ 12 августа 2010

Windows не хранит исторические данные, вам нужно будет использовать базу данных, такую ​​как tz database . Я не смог найти какой-либо код Delphi, указанный на этой конкретной странице, но там может быть что-то плавающее. В противном случае вам придется перенести его с одного из языков, которые в настоящее время поддерживаются ...

0 голосов
/ 20 августа 2010

Как насчет: Конвертировать строку UTC в TDatetime в Delphi

Кроме того, есть некоторые обсуждения и код Delphi для этого по адресу: http://www.tek -tips.com / viewthread.cfm? Qid = 1486209 & page = 1

И вы можете найти справедливый ответ на этот вопрос с помощью поиска Google: utc local delphi

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...