2017-07-27 6 views
1

Ich habe System.DateTime.Now in einer Variablen StartDate gespeichert (Variable ist vom Typ DateTime?).DateTime.ParseExact funktioniert nicht für "JJJJ-MM-TT HH: mm: ss"

ich es Zeichenfolge bin Umwandlung wie folgt:

string temp = StartDate.Value.ToString("yyyy-MM-dd HH:mm:ss") 

Nun ist die Temperatur hat einen Wert in "yyyy-MM-dd HH: mm: ss".

Jetzt will ich wieder zu String Temp zu Datetime konvertieren, so habe ich, wie unten tue:

DateTime.ParseExact(temp,"yyyy-MM-dd HH:mm:ss",null) 

aber das funktioniert nicht.

Es gibt immer Datum im selben Format wie System.DatTime.Now zurück. Der Wert sollte im Format "JJJJ-MM-TT HH: MM: SS" zurückgegeben werden.

+0

Angenommen, das Format sollte sein "" JJJJ-MM-TT HH: mm: ss "', [Ich kann das Problem nicht reproduzieren.] (Http://rextester.com/VYU83873) –

+3

Was bedeutet "doesn ' t Arbeit "gemein? kompiliert nicht? Formatstörung? Ergebnis um vier Stunden? Bitte klären Sie. – dlatikay

+0

Blind Rate - versuchen Sie 'DateTime.ParseExact (Temp," JJJJ-MM-TT HH: mm: ss ", CultureInfo.InvariantCulture)'? Hast du eine seltsame aktuelle Kultur? – vlad2135

Antwort

3

Ein Wert vom Typ DateTime hat nicht ein bestimmtes Format. Dieses Datum und diese Uhrzeit werden als eine Anzahl ganzzahliger Werte gespeichert (nicht eine für jede Komponente, aber viel kompakter).

Wenn Sie eine Zeichenfolge analysieren, wird das in dieser Zeichenfolge dargestellte Datum als diese Ganzzahlen gespeichert.

Nur wenn Sie eine .ToString() (möglicherweise mit einigen Format) tun, erhalten Sie eine String-Darstellung dieses Datums in einem bestimmten Format.

Wenn Sie den Mauszeiger über den DateTime-Wert im Debugger bewegen, sehen Sie das Ergebnis einer einfachen .ToString() mit einer bestimmten aktuellen Kultur. Der Unterschied zwischen ParseParse und ParseExact ist, dass Parse versucht mehrere Formate (und möglicherweise auf eine Zeichenfolge wie "2/3/2017" - FEB 3. oder 2. MAR) fehlschlagen, während mit ParseExact Sie ein oder mehrere Formate selbst liefern. In beiden Fällen haben Sie einen Wert von DateTime.

Verwandte Themen