2010-09-15 2 views
1

J'ai un programme qui publie Datetime.Now(), mais DateTime.Now() de mon ordinateur de collègues est désactivé par une heure. Il l'a modifié dans ses propriétés de date et heure de Windows, mais il publie toujours un DateTime.Now() qui est une heure d'arrêt.DateTime.Now Off par une heure sur l'ordinateur de collègue

Comment puis-je résoudre ce problème sur sa boîte sans apporter de modifications à mon programme (j'ai trop de projets en cours et ont besoin d'une solution rapide pour l'instant)

+1

Heure d'été? – w69rdy

Répondre

8

il est dans le fuseau horaire correct? Mieux utiliser DateTimeOffset.

+0

Je vais vérifier. Cela ferait-il une différence? – sooprise

+0

Oui. C'est probablement quelque chose comme l'heure d'été, si ce n'est le fuseau horaire en tant que tel. –

+0

Est-ce que DateTime.Now change uniquement lorsque vous redémarrez le programme? Je pense que c'est ce qui causait le problème. – sooprise

2

Demandez-lui d'activer l'heure d'été et de vérifier le fuseau horaire. Et en général, utilisez DateTime.UtcNow. Posez des questions à ce sujet à superuser.com

+0

Oui, je vais implémenter UtcNow avec la prochaine version de mon programme :) – sooprise

+0

Utiliser UTC est une très bonne idée, en particulier dans un système distribué. Cela signifie que, dans certains cas, vous devrez convertir dans le fuseau horaire de l'utilisateur à des fins de présentation, mais cela en vaut la peine. –

+0

Certainement, la conversion est assez simple aussi. L'heure d'affectation a un effet négatif sur le fonctionnement du programme, alors je suis d'accord, cela en vaudra certainement la peine. – sooprise