Convertir UTC DateTime à un autre fuseau Horaire
J'ai un UTC valeur DateTime à venir à partir d'un enregistrement de base de données. J'ai aussi un utilisateur du fuseau horaire spécifié (une instance de TimeZoneInfo). Comment puis-je convertir UTC DateTime pour l'utilisateur de la zone de l'heure locale? Aussi, comment puis-je déterminer si l'utilisateur fuseau horaire spécifié est actuellement l'observation de l'heure d'été? Je suis en utilisant .NET 3.5.
Grâce,
Marque
Vous devez vous connecter pour publier un commentaire.
Ont un look à la DateTimeOffset structure:
De l'heure d'été voir le TimeZoneInfo.IsDaylightSavingTime méthode.
The UTC Offset for Utc DateTime instances must be 0
.La meilleure façon de le faire est de simplement utiliser
TimeZoneInfo.ConvertTimeFromUtc
.Le seul hic, c'est que la prochaine
DateTime
valeur ne peut pas avoir leDateTimeKind.Local
genre. Il doit êtreUtc
, ouUnspecified
.Vous pouvez utiliser une fonction dédiée, au sein de TimeZoneInfo si vous voulez convertir un DateTimeOffset dans un autre DateTimeOffset:
L'Antarctique, la réponse ne fonctionne que pour les fuseaux horaires UTC correspondant. Je suis assez traumatisés par cette
DateTimeOffset
fonction et après des heures d'essais et d'erreurs, j'ai réussi à produire une pratique de conversion de la fonction d'extension qui fonctionne avec tous les fuseaux horaires.Exemple:
static public
? L'HÉRÉSIE, BRÛLER LA SORCIÈRE