2009-03-16 5 views
3

J'ai un webservice asp.net avec un paramètre de type datetime. J'ai remarqué que asp.net semble compenser la date en fonction du fuseau horaire du client.ASP.net Webservice Date Paramètre Timezone Offset Problème

Je dois désactiver cette fonctionnalité. Je veux simplement passer une date (c'est-à-dire 15/03/2009) au webservice depuis javascript sans aucun contexte de fuseau horaire.

Est-ce que ma seule option est de changer le type de paramètre en chaîne puis de le convertir côté serveur, ou y a-t-il un moyen de désactiver le désérialiseur pour compenser mon paramètre de date?

Répondre

1

J'utiliserais une chaîne.

Cela a du sens - un DateTime est vraiment un "point dans le temps", donc quand deux clients parlent du même DateTime, ils parlent du même INSTANT. Donc, en disant "le météore va frapper la terre dans 5 minutes", devrait s'ajuster au fuseau horaire.

+0

Nous avons eu ce problème et avons fini par utiliser la méthode des cordes. Tout le reste que nous avons essayé était soit compliqué ou échoué sur divers cas de bord. –

0

J'ai eu exactement ce « problème » et quand je pensais à travers, je me suis aperçu que la façon dont il a travaillé était en effet correcte, au moins pour mon scénario. Dans mon cas, je recevais une date activeFrom et activeTo. Ceux-ci ne peuvent être que des dates (aucune partie de temps) lorsque je soumets réellement ces valeurs au processeur. Notre serveur web est en heure de l'Est. Il m'est arrivé de tester un client dans Central Time. Mon test a échoué car la valeur stockée dans la base de données ne correspondait pas à celle que j'avais envoyée (EG 04/01/2009 01:00 vs 04/01/2009 00:00).

Je pensais juste à enlever la partie temps. Cela semblait OK jusqu'à ce que je considère une demande venant d'un fuseau horaire à l'est de l'Est (ce qui arriverait parce que nous avons des clients en Thaïlande). J'étais contrarié parce que la date résultante serait un jour avant la date envoyée dans la demande. Puis j'ai réalisé, c'est exactement la date que je veux utiliser.

J'espère que votre scénario se déroulera aussi bien que le mien.