2010-04-06 5 views
3

Je demande à un client que toutes les heures soient affichées dans le fuseau horaire du Pacifique, quels que soient les paramètres du client. Je voudrais éviter un scénario où je dois appeler une fonction pour chaque affichage de temps et à la place avoir un seul point où je peux faire le changement.Puis-je forcer un site Web ASP.Net à afficher l'heure dans un fuseau horaire spécifique?

Je pense qu'une culture personnalisée pourrait faire l'affaire, mais je voulais demander avant de me lancer dans une allée potentiellement aveugle (ou manquer quelque chose d'une simplicité triviale).

Répondre

4

Vous pouvez utiliser TimeZone.GetUTCOffset() et DateTime.UtcNow()

obtenir Fondamentalement, le temps UTC et le décalage qui en fonction du fuseau horaire qui vous intéresse.

Bonté,

Dan

+0

Est-ce que cette approche doit être appliquée sur chaque champ où un champ DateTime est affiché ou quelque chose que je pourrais utiliser sur une page maître et l'ont cascade vers le bas à des champs individuels? Je demande peut-être trop, mais j'espérais une solution sèche pour l'ensemble du site. – KevDog

+0

Je me demande si la bibliothèque de Noda de Jon Skeet s'occupera de ce scénario quand il sera terminé. – KevDog

0

Si vous stockez vos heures en UTC, vous pouvez convertir ce que vous voulez facilement. Michael Brumm a un code assez ancien qui peut vous aider avec un TimeZone personnalisé. Le codage dur d'un décalage vous visse lorsque l'heure d'été commence.

Remarque: Je n'ai pas utilisé ce code sur le site de Michael.

http://www.michaelbrumm.com/simpletimezone.html

+0

Je suis vraiment en train d'essayer d'éviter un scénario codé en dur, alors merci pour le rappel! – KevDog