Devo convertire le stringhe di data UTC
a DateTimeOffsets
.Convertire UTC DateTime a DateTimeOffset
Questo deve funzionare con un fuso orario diverso dal fuso orario del computer. E.g. il fuso orario attuale del computer è +02: 00, ma voglio creare un DateTimeOffset con offset -4: 00.
Ho già letto molte domande qui su StackOverflow, ma nessuno di loro ha risolto il mio problema.
Questo è ciò che ho bisogno di fare:
ingresso: "2012-11-20T00: 00: 00Z"
uscita: DateTimeOffset con:
- UtcDateTime di 2012-11-20 00:00
- l'offset Utc corretto per il fuso orario definito (01:00 in questo ex ampio)
- LocalDateTime: 2012/11/20 01:00 (= UtcDateTime + Offset)
dell'ora legale Naturalmente si deve tener conto.
modificare: Per rendere le cose ancora più chiare, si prega di cercare di completare il seguente frammento di codice:
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));
Grazie, sembra funzionare bene! – Fabian