2009-06-05 11 views
1

Ich habe einen Silverlight-Client, der mit einigen ASP.NET-Webdiensten kommuniziert, die dann eine Datenbank ändern. Der Client verfügt über Daten, die geändert und über die Webdienste an die Datenbank gesendet werden können. Diese Daten sind nach Datum geordnet.Wie wird sichergestellt, dass die richtige DateTime verwendet wird?

Offensichtlich kann sich der Client in einer anderen Zeitzone als der ASP.NET-Server befinden. Wie kann ich sicherstellen, dass die DateTime-Informationen in der richtigen Zeitzone für die Datenbank enthalten sind? Bleibt die Zeitzoneninformation der DateTime zwischen dem Client und dem Server bestehen, so dass die Konvertierung in UTC korrekt zu einer UTC-Zeit führt, oder muss die UTC-Konvertierung auf dem Client stattfinden?

Antwort

5

Sie sollten DateTime.UtcNow in Ihrem Code verwenden, dann gibt es keine Frage, wo die Konvertierung benötigt wird.

Da Silverlight unter Verwendung der .NET-Laufzeit auf dem Computer des Clients ausgeführt wird, würde ich annehmen, dass es Zeit in der lokalen Zeitzone des Benutzers erhalten würde.

können Sie die TimeZoneInfo Klasse in Silverlight verwenden, um Informationen über die Zeitzone erhalten sich der Benutzer befindet. Die DateTime Klasse selbst keine spezifischen Zeitzoneninformationen speichert (nur, ob die Zeit Universal- oder Ortszeit), so dass Sie‘ d muss dies verwenden, um die Zeitzone des Benutzers zu bestimmen.

+0

Danke - Ich hatte einen Moment der Verwirrung - es ist alles so offensichtlich für mich jetzt. An einem anderen Punkt gibt es eine Situation, in der ich überhaupt keine Konvertierung möchte, aber ich bekomme sie von irgendwem, irgendwelche Ideen, wie ich das verhindern kann? –

Verwandte Themen