Wie kann ich eine DateTime basierend auf einer Zeichenfolge
erhalten? z.B.
wenn ich mytime = "14:00"
Wie kann ich ein DateTime
-Objekt mit dem aktuellen Datum als Datum erhalten, es sei denn, die aktuelle Zeit ist bereits 14:00:01, dann sollte das Datum der nächste Tag sein.
Dies ist so einfach wie die Analyse eines DateTime
mit einem exakten Format.
Erreichbar mit
%Vor% Die DateTime.ParseExact()
(msdn link) Methode einfach erlaubt Ihnen, die Formatzeichenkette, die Sie wünschen, als Ihre analysierende Zeichenkette zu übergeben, um das DateTime
struct zurückzugeben. Jetzt wird die Date
-Portion dieser Zeichenkette auf das heutige Datum zurückgesetzt, wenn kein Datumsteil angegeben wird.
Um den zweiten Teil zu beantworten
Wie kann ich ein DateTime-Objekt mit dem aktuellen Datum als Datum erhalten, es sei denn aktuelle Uhrzeit bereits 14:00:01, dann sollte das Datum am nächsten Tag sein.
Das ist auch einfach, da wir wissen, dass DateTime.ParseExact das heutige Datum zurückgibt (da wir keinen Datumsteil geliefert haben), können wir unser analysiertes Datum mit DateTime.Now
vergleichen. Wenn DateTime.Now
größer als unser analysiertes Datum ist, fügen wir 1
day zu unserem analysierten Datum hinzu.
Sie können DateTime.TryParse()
verwenden : Dies konvertiert die angegebene Zeichenfolgendarstellung eines Datums und einer Uhrzeit in sein DateTime
-Äquivalent und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.
Beispiel hier
ausführenEs gibt einen Datetime-Konstruktor für
%Vor%Also analysiere die Zeichenkette, um die Stunden, Minuten und Sekunden zu finden, und füge das in diesen Konstruktor mit den anderen Parametern ein, die von Datetime.Now.Day usw. geliefert werden.