Verwenden Sie zunächst nicht DateTime
, sondern verwenden Sie (oder einen anderen NodaTime-Typ, wie @DiskJunky erwähnt). Dadurch können Sie jeden Wert mit dem angegebenen Zeitversatz analysieren/speichern.
Ihre bereitgestellten Texte sollten gut mit Standard-Parsing arbeiten:
string test1 = "2017-10-04T16:24:55.000-04:00";
string test2 = "2017-10-04T13:14:35.000+04:00";
DateTimeOffset dateTime;
if (DateTimeOffset.TryParse(test1, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
{
Console.WriteLine("Date 1: " + dateTime);
}
if (DateTimeOffset.TryParse(test2, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
{
Console.WriteLine("Date 2: " + dateTime);
}
Wenn die Zeitwerte als DateTimeOffset
analysiert sind, können Sie sie wie du zum Beispiel wollen ... konvertieren und angezeigt werden, erhalten Sie Ihre US angepasst Zeit mit dateTime.ToLocalTime()
oder erhalten Sie einen leichteren internationalen austauschbaren Wert mit dateTime.ToUniversalTime()
.
Es ist unklar, was Sie fragen. Einer liegt 4 Stunden vor UTC, der andere 4 Stunden zurück. Sie können sie mithilfe von [DateTime.TryParseExact] (https://msdn.microsoft.com/en-us/library/system.datetime.tryparseexact (v = vs.110) .aspx) in eine 'DateTime' konvertieren ... Wie Sie diese anzeigen, hängt davon ab, wo sich der Endbenutzer befindet. –