Comment faire des fuseaux horaires dans ASP.NET MVC?

Sur mon site, je dois connaître les fuseaux horaires dans lesquels les personnes se trouvent, afin de leur afficher les messages au bon moment. Je ne sais pas trop quoi chercher en termes de tutoriel sur la façon de procéder.

Ce que je compte faire, c’est: lorsqu’un utilisateur accède à mon site, il va définir son fuseau horaire en le sélectionnant dans une liste déroulante. Je vais stocker leurs parameters dans ma firebase database et l’utiliser pour calculer les temps.

Je ne suis pas sûr de ce dont j’ai besoin. Quel devrait être le temps de stockage de ma firebase database? J’ai lu quelque part qu’il devrait être stocké en UTC. Comment configurer ma firebase database pour ce faire? De plus, je serai sur un site d’hébergement partagé afin qu’il soit configuré de manière à pouvoir le faire (peut-être via webconfig?).

Ensuite, j’aurais besoin d’une liste de tous les fuseaux horaires en tant qu’assistant HTML ou HTML normal. Je ne veux vraiment pas en faire un.

Ensuite, comme je l’ai dit, j’ai besoin d’un tutoriel pour me montrer quoi faire. Je pense que cela ajoute et soustrait des choses de cette époque, mais je peux me tromper.

Je ne peux pas insister sur l’importance de l’utilisation de l’UTC pour le stockage et le traitement de toute application que vous écrivez. Même si vous savez que l’application ne sera jamais utilisée que dans un seul fuseau horaire, il est encore plus facile de travailler avec l’heure UTC qu’avec un fuseau horaire local en raison de problèmes d’heure d’été.

Il n’y a vraiment rien de spécial à faire au niveau de la firebase database. Créez simplement une colonne de date / heure normale, mais assurez-vous que la colonne est clairement UTC.

Je serai honnête, asp.net n’est pas mon expertise, mais je pense que vous pourriez obtenir le fuseau horaire de la demande du client en quelque sorte. En fait, comme les règles d’heure d’été peuvent être assez obscures selon la région, il peut être préférable d’utiliser un script Java qui calcule le décalage UTC et l’utilise pour effectuer les conversions. Même après la loi sur la politique énergétique de 2005, il existe encore des exceptions aux règles DST qui seraient plutôt difficiles à traiter du côté des serveurs. Cependant, je pense que vous avez l’idée de permettre au client de définir son propre fuseau horaire dans la plupart des cas.

Tout d’abord, vérifiez MSDN pour la documentation DateTime et lisez-le. Voici un article sur les meilleures pratiques avec DateTime qui couvre les fuseaux horaires et UTC.

Oui, vous devez stocker UTC dans votre firebase database. Le stockage de DateTimes en UTC vous permettra de traduire les heures vers (et depuis) ​​les utilisateurs en fonction de leur fuseau horaire sélectionné. Vous êtes sur la bonne voie!