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. "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

Schreibe einen Kommentar