Konvertieren UTC-DateTime in DateTimeOffset

Muss ich konvertieren UTC Datums-Zeichenketten zu DateTimeOffsets.

Muss diese Arbeit mit einer Zeitzone unterscheidet sich von den Computern Zeitzone.
E. g. aktuelle computer-Zeitzone +02:00, aber ich will einen DateTimeOffset mit offset -4:00.

Ich schon gelesen, viele Fragen hier auf stackoverflow, aber keiner von Ihnen ist mein problem gelöst.

Dass ist, was ich tun muss:

Eingang: "2012-11-20T00:00:00Z"

Ausgabe: DateTimeOffset mit:

  • UtcDateTime von 2012-11-20 00:00
  • die korrekte Utc-offset für die Zeitzone definiert (01:00 in diesem Beispiel)
  • LocalDateTime: 2012-11-20 01:00 (= UtcDateTime + Offset)

Natürlich die Sommerzeit berücksichtigt werden muss.

Bearbeiten:
Um die Dinge noch klarer, bitte versuchen Sie, füllen Sie den folgenden code-snippet:

DateTimeOffset result;
const string dateString = "2012-11-20T00:00:00Z";
var timezone = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time"); //this timezone has an offset of +01:00:00 on this date

//do conversion here

Assert.AreEqual(result.Offset, new TimeSpan(1, 0, 0));  //the correct utc offset, in this case +01:00:00
Assert.AreEqual(result.UtcDateTime, new DateTime(2012, 11, 20, 0, 0, 0)); //equals the original date
Assert.AreEqual(result.LocalDateTime, new DateTime(2012, 11, 20, 1, 0, 0));

InformationsquelleAutor Fabian | 2012-12-18

Schreibe einen Kommentar