2011-10-04 3 views
0

J'ai Date côté client (l'utilisateur le choisira dans le sélecteur de date) et je veux l'envoyer au serveur et utiliser la valeur UTC pour de futurs calculs.
Par exemple, l'utilisateur choisit Tue Oct 04 2011 00:00:00 GMT+0300 (E. Europe Daylight Time), j'envoie des millisecondes au serveur en utilisant date.getTime(). Sur le serveur j'utilise la méthode:Fonctionne avec le fuseau horaire date

public static DateTime GetDateByMilliseconds(long milliseconds) 
{ 
    var date = new DateTime(1970, 1, 1); 
    return date.AddMilliseconds(milliseconds); 
} 

et obtenir Oct 03, 2011 09:00:00 PM. Mais je veux fonctionner avec la valeur Oct 04 2011 00:00:00.
Que dois-je faire? Réinitialiser le fuseau horaire de la date du côté client? Ajouter un décalage sur le serveur? Rien d'autre?

+0

Ce sont les mêmes valeurs. Vous dites que vous voulez utiliser UTC, 'Oct 03, 2011 09:00:00 PM' * est * la valeur UTC de« Mar Oct 04 2011 00:00:00 GMT + 0300 ». Je ne comprends pas la question ... – deceze

+0

Javascript vous donnera l'heure UTC, donc plus tard, vous devrez ajouter/soustraire le décalage de la valeur pour obtenir votre objet DateTime – V4Vendetta

+0

Je ne suis pas 100% clair sur ce qu'il est exactement Vous demandez ... cependant, ce que je peux être clair avec vous, c'est de faire vos calculs en UTC, pas local, puis de le convertir à l'heure locale à des fins d'affichage. – James

Répondre

1

Je pense que vous devriez faire:

date.getTime() + (date.getTimezoneOffset() * 60 * 1000) 

Cela « supprimer » le décalage pour le fuseau horaire de l'utilisateur.

Questions connexes