Konvertiere die C # -Datumszeit in einen String und zurück
Ich bin die Konvertierung von C# - Datum-Zeit-string. Später, wenn ich konvertieren es zurück zu DateTime Objekt es scheint, dass Sie nicht gleich sind.
const string FMT = "yyyy-MM-dd HH:mm:ss.fff";
DateTime now1 = DateTime.Now;
string strDate = now1.ToString(FMT);
DateTime now2 = DateTime.ParseExact(strDate, FMT, CultureInfo.InvariantCulture);
Console.WriteLine(now1.ToBinary());
Console.WriteLine(now2.ToBinary());
Hier ist das Beispiel. Sieht aus wie alles ist enthalten in string format, wenn ich print date beide displays die gleichen, aber wenn ich Vergleiche-Objekte oder drucken Sie das Datum im Binär-format sehe ich den Unterschied. Es sieht merkwürdig für mich, könnten Sie bitte erklären, was ist hier Los?
Hier ist die Ausgabe für den oben stehenden code.
-8588633131198276118
634739049656490000
InformationsquelleAutor der Frage axe | 2012-05-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie die
Rundreise
- Formatbezeichner "O" oder "o" wenn Sie möchten, zu bewahren den Wert derDateTime
.Die mit Ihrem code (abgesehen vom ändern der format-string):
Bekomme ich:
InformationsquelleAutor der Antwort Oded
Oded s Antwort ist gut, aber es hat nicht funktioniert für mich für die UTC-Daten. Um es zu bekommen, um die Arbeit für UTC Datumsangaben, die ich brauchte, um anzugeben, eine DateTimeStyles Wert "RoundtripKind", so dass es nicht versucht haben, davon ausgehen, es war eine lokale Zeit. Hier ist der aktualisierte code von oben:
Hinweis, dies funktioniert sowohl für UTC-Zeit und lokaler Daten.
InformationsquelleAutor der Antwort Taylor Lafrinere
2 Dinge:
Können Sie die ParseExact-überlastung, das dauert ein DateTimeStyle-parameter, um anzugeben
AssumeLocal
.Gibt es noch einen kleinen Unterschied zwischen now1 und now2, es sei denn, Sie erhöhen die Genauigkeit auf 7 stellen statt 3: "yyyy-MM-dd HH:mm:ss.fffffff"
Sogar ohne die oben genannten änderungen, die berechnete Differenz zwischen now1 und now2 erscheint klein, obwohl die binären Werte erscheinen nicht ähnlich.
InformationsquelleAutor der Antwort Dr. Wily's Apprentice
Einfach diesen code verwenden Sie convert date time string und string zu Datum, Zeit
InformationsquelleAutor der Antwort Ashekur Rahman molla Asik