Vous rencontrez probablement le problème si la partie heure du type DateTime est 12:00:00. Si cette valeur (14 Jan 2007 00:00) est soumise en EST, elle sera compensée lorsque vous vous déplacez dans les fuseaux horaires de l'Ouest (c.-à-d. 13 janv. 2007 23:00 en CST)
La meilleure façon de contourner est de s'assurer que vous stockez les données DateTime dans un type invariant (le convertir en UTC pr GMT). Ensuite, lorsque vous arrivez à n'importe quel consommateur a besoin des données, ils peuvent changer les données dans la représentation locale-spécifique. Si vous n'êtes pas en mesure de contrôler la façon dont les données sont sauvegardées, assurez-vous de les convertir en un type invariant lors de la récupération, avant de le renvoyer à un client.
Le lien @Joe référencé est utile, sinon voici un livre blanc assez volumineux détaillant les meilleures pratiques concernant le problème.
http://msdn.microsoft.com/en-us/library/ms973825.aspx
Voici un Q'n'A de débordement de la pile en ce qui concerne certaines des technologies les plus récentes, aussi.
Best practices for DateTime serialization in .NET 3.5
Note: il y a un point intéressant dans ce premier lien que j'ajouté sur la sérialisation de certains de ces types de date, selon que vous êtes toujours sur les 1.1/2.0 piles. Faites attention à cela car il m'a mordu quelques fois ;-)
La machine locale est en Inde –
Ok, si vous interrogez la première chose le matin en Inde, un serveur basé aux États-Unis n'aura pas passé minuit encore. Le problème est-il reproductible à tout moment de la journée? – Nick
Pas tous les moments de la journée, mais il arrive spécialement le matin comme vous l'avez mentionné –