2009-06-05 4 views
1

J'ai un client Silverlight qui parle à certains services Web ASP.NET, qui modifient ensuite une base de données. Le client dispose de données qui peuvent être modifiées et envoyées via les services Web à la base de données. Ces données sont organisées par date.Comment s'assurer que le bon DateTime est utilisé?

De toute évidence, le client peut résider dans un fuseau horaire différent du serveur ASP.NET, alors, comment puis-je m'assurer que les informations DateTime sont dans le fuseau horaire correct pour la base de données? Est-ce que les informations de fuseau horaire de DateTime survivent entre le client et le serveur de telle sorte que la conversion en UTC entraîne correctement une heure UTC, ou la conversion UTC doit-elle avoir lieu sur le client?

Répondre

5

Vous devriez utiliser DateTime.UtcNow dans votre code, alors il n'y a pas de doute quant à l'endroit où la conversion est nécessaire.

Étant donné que Silverlight s'exécute en utilisant l'environnement d'exécution .NET sur l'ordinateur du client, je suppose qu'il obtiendrait du temps dans le fuseau horaire local de l'utilisateur.

Vous pouvez utiliser la classe TimeZoneInfo dans Silverlight pour obtenir des informations sur le fuseau horaire de l'utilisateur est. La classe elle-même DateTime ne stocke pas les informations de fuseau horaire spécifique (juste si le temps est le temps universel ou local), de sorte que vous » Vous devez l'utiliser pour déterminer le fuseau horaire de l'utilisateur.

+0

Merci - J'ai eu un moment de confusion - tout est si évident pour moi maintenant. Sur un autre point, il y a une situation où je ne veux pas de conversion du tout, mais je l'obtiens de quelqu'un quelque part, des idées sur la façon de prévenir cela? –

Questions connexes