2010-08-12 4 views
2

Y at-il un moyen facile dans Windows (en utilisant Delphi, pas. NET) pour convertir les heures UTC à une heure locale, avec des ajustements d'heure d'été.L'heure d'été historique dans Windows

Les données remontent à 12 ans et doivent donc prendre en compte les modifications des dates de début et de fin de l'heure d'été sur cette période.

Répondre

2

drôle, une question très similaire est apparu hier sur LinkedIn.

Ceci est la réponse que j'ai donné là-bas:

Zones de temps sont un peu fluide, en particulier lorsque l'heure d'été/ démarre finitions.

Cette base de données ( http://en.wikipedia.org/wiki/Tz_database ) définit les fuseaux horaires, et il changements parfois, vous avez besoin d'un mécanisme et de mise à jour .

Il y a une implémentation .NET vous pouvez envelopper ou utiliser comme base: http://www.codeproject.com/KB/locale/zoneinfo_dotnet_api.aspx

Je ne sais pas comment à jour cette mise en œuvre Delphi est: http://sourceforge.net/projects/delphitz/

Let nous connaissons votre implémentation finale.

Edit: Le projet mentionné ci-dessus semble vide, donc je recherche plus loin et a trouvé le Delphi TimeZone Database project être encore actif.

--jeroen

+0

Thx, ressemble à l'implémentation Delphi qui servira de base. J'espérais que je n'aurais pas à rouler le mien ... –

+0

Suis-je le seul à ne pas être en mesure de trouver des sources sur http://sourceforge.net/projects/delphitz? – avra

+0

@avra: trouvé un meilleur projet, voir la modification. –

2

Windows ne stocke pas de données historiques, vous devez utiliser une base de données telle que tz database. Je n'ai trouvé aucun code Delphi sur cette page particulière, mais il y en a peut-être qui circulent. Dans le cas contraire, vous devrez le porter d'une des langues qui sont actuellement pris en charge ...