Ich weiß, das ist alt, aber hoffen, dass dies jemand in der Zukunft hilft. Hier
ist das XML-I wurde Deserialisieren:
<timePeriod>1982-03-31T00:00:00+11:00</t
Nach Deserialisieren des XML ich mit dem 30. am Ende nicht der 31.:
Es erscheint die dritte Partei, die produzieren Dieses XML (das ich verwende) ändert die Zeitzone während der Sommerzeit auf +11 und behält es als +10, wenn es nicht Sommerzeit (DST) ist.
Laut Jon Skeet UTC sollte DST nicht berücksichtigen: https://stackoverflow.com/a/5495816/495455
auch die Dokumentation beachten
Coding Best Practices Using DateTime in the .NET Framework:
Die XML-Serializer geht immer davon aus, dass die Werte Datetime lokale Maschinenzeit serialisiert darstellen, so Es wendet den lokalen Zeitzonenoffset der Maschine als Offset-Teil der codierten XML-Zeit an. Wenn wir dies auf einer anderen Maschine deserialisieren, wird der ursprüngliche Offset von dem analysierten Wert subtrahiert und der Zeitzonen-Offset der aktuellen Maschine wird hinzugefügt.
Der folgende Code erlaubt mir das Datum als 31. formatiert zu bekommen, aber es funktionieren wird nicht 100% für nicht Daylioght Speichern von Daten (in diesem Feed angegeben):
TimeZoneInfo easternZone = TimeZoneInfo.FindSystemTimeZoneById("AUS Eastern Standard Time");
DateTime easternTimeNow = TimeZoneInfo.ConvertTimeFromUtc(dataPoint.timePeriod, easternZone);
System.Diagnostics.Debug.WriteLine(easternTimeNow.ToString());
Daher ist die Lösung Fixieren Sie den XML-Feed, so dass keine UTCs mit DST alternieren.
EDIT:, warum die Daten nach oben geschraubt wurden
Da es sich nicht der 3rd-Party-Anbieter stellt sich heraus, die UTC mit dem DST ändern. Der XML-Feed wird vom Java Swing-Framework erstellt, indem ein SQL-DB gelesen wird. Normalerweise würde ich empfehlen, bei der XML-Standarddarstellung (xsd: dateTime) zu bleiben - IS0 8601, aber in diesem Fall mit string und ripping alles nach dem T funktioniert. Haftungsausschluss, ich versuche immer noch, den Feed geändert zu bekommen, empfehle Ihnen, dies nicht in PROD zu tun. Benutzung auf eigene Gefahr!!
Kann jemand mir einen Link auf die genaue umgekehrt von dieser Frage geben? (Übergabe von DateTime vom .Net Server zum JavaScript Client) – Siddhant