Il est généralement accepté de stocker toutes les valeurs de date et heure dans votre base de données au format GMT/UTC.
Pour ceux qui veulent rendre la valeur UTC à un fuseau horaire particulier pour les différents utilisateurs de l'application, comme wilpeck mentionné, il est suggéré que vous déterminez les utilisateurs finaux paramètres régionaux et:
- lors de la persistance, magasin les paramètres régionaux avec la valeur de date UTC
- lors de la lecture, rend la valeur UTC à l'heure locale avec la valeur locale associée
EDIT:
Par exemple:
Vous pourriez avoir une table avec un champ StartDateTime afin de soutenir plusieurs fuseaux horaires que vous pourriez avoir un champ supplémentaire StartDateTimeOffset. Si le client se trouve dans la zone de l'heure normale des Indiens (IST), vous pouvez avoir une valeur datetime du 13/10/2009 à 14h45 soit 2009/10/13 09:15 en UTC. Vous devez donc stocker la valeur UTC (2009/10/13 09:15) dans le champ StartDateTime et enregistrer le décalage +05: 30 dans le champ StartDateTimeOffset. Maintenant, lorsque vous lisez cette valeur à partir de la base de données, vous pouvez utiliser l'offset pour convertir la valeur UTC datetime (2009/10/13 09:15) à l'heure locale du 13/10/2009 14:45.
Puis-je avoir un échantillon pour cela? par exemple: le système du client est chez IST et le serveur chez CST. – Prasad
Édité pour inclure l'exemple –
Merci cottsak, c'est très utile – Prasad