C# - korrekte Methode zum vergleichen von 2 Datum Zeit
Habe ich meine folgenden codes als unten. Es funktioniert in den meisten Szenario, aber heute habe ich ein Szenario, wo die expiration_date
ist 09/30/2017 00:00:00
ist weniger als currentDateTime
die in string
als 10/15/2016 14:34:19
? Was ist der Fehler auf meiner Seite habe ich nur den Vergleich als string
?
System.DateTime expiration_date = newVer.License.Status.Expiration_Date;
DateTime currentDateTime = DateTime.Now;
currentDateTime.ToString("MM/dd/yyyy HH:mm:ss");
int a = expiration_date.ToString("MM/dd/yyyy HH:mm:ss")
.CompareTo(currentDateTime.ToString("MM/dd/yyyy HH:mm:ss"));
//MessageBox.Show("int a is :" + a);
if (expiration_date.ToString("MM/dd/yyyy HH:mm:ss")
.CompareTo(currentDateTime.ToString("MM/dd/yyyy HH:mm:ss")) < 1)
{
crossDate = 1;
MessageBox.Show("Cross Date Alert"+ " Expiry Date Is :"+
expiration_date.ToString("MM/dd/yyyy HH:mm:ss")
+ " "+"Current Date Is :"+
currentDateTime.ToString("MM/dd/yyyy HH:mm:ss"));
}
Sie sollten direkt vergleichen Terminen statt der Umwandlung in strings. Wenn Sie immer noch darauf bestehen, auf die Umwandlung in strings vor dem Vergleich, sollten Sie ein format verwenden, wird die Erhöhung mit der Erhöhung Datum, d.h.
Es gibt keine müssen
"yyyy/MM/dd HH:mm:ss"
Es gibt keine müssen
insist
konvertieren zwei Datumsangaben in Zeichenfolgen zu vergleichen zwei Daten. Eigentlich ist "langsamer", weil die Umwandlung. Sich nicht ändern, die domain für einen Wert, es sei denn, Sie kann nicht anders.InformationsquelleAutor user5313398 | 2016-10-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vergleichen, datetime, als würden Sie die zahlen vergleichen, wie
Wenn Sie brauchen nur das Datum und nicht die Zeit dann nutzen Sie
Können Sie auch die Tages-Differenz von zwei Datums.
Ich denke, mit Datum nur besser, es sei denn, Sie brauchen Zeit, wie gut.
Sie können auch die Tages-Differenz von zwei Datums.
DateTime ist präziser. Es wird Ihre Bedürfnisse abdecken, auch wenn Sie nur die Termine.
Dies ist eine Art von trivial Kommentar, aber wenn wenn( expiration_date > currentDateTime), dann ist es immer noch gültig. Ich meine, ältere Daten sind kleiner als die neueren 🙂
InformationsquelleAutor Amit Hasan
Vergleichen von Datumsangaben Beispiel:
Sie haben zu vergleichen
Dates
nichtStrings
.InformationsquelleAutor shadow
Ihre Frage eine zweiteilige Antwort. Gibt es vielleicht etwas einfacher, aber:
Zuerst konvertieren den string in einen DateTime-Objekt. Die DateTime-Klasse hat mehrere Methoden, um Hilfe mit diesem. Versuchen Sie ParseExact.
Anschließend konvertieren Sie das DateTime-Objekt in einen Unix-timestamp.
Nun haben Sie zwei lange Ganzzahlen, die Sie vergleichen können, und konvertieren Sie die int-Vergleich zu anderen DateTime -, und nehmen die Dinge von dort aus.
InformationsquelleAutor dylanthelion
nicht konvertieren in strings
InformationsquelleAutor user3598756