C# bonne méthode pour comparer 2 date heure
J'ai mes codes suivants comme ci-dessous. Il fonctionne dans la plupart scénario, mais aujourd'hui, j'ai un scénario où le expiration_date
est 09/30/2017 00:00:00
est à moins de currentDateTime
qui est en string
comme 10/15/2016 14:34:19
? Qu'est-ce que le bug de mon côté je viens de comparer, comme 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"));
}
- Vous devriez comparer directement les dates au lieu de les convertir en chaînes. Si vous insistez toujours sur la conversion de chaînes de caractères avant la comparaison, vous devez utiliser un format qui sera de plus en plus avec l'augmentation de la date c'est à dire
"yyyy/MM/dd HH:mm:ss"
- Il n'est pas nécessaire de
insist
de convertir des dates dans les chaînes de comparer deux dates. En fait est "plus lent" en raison de la conversion. Ne pas changer le domaine d'une valeur, à moins que vous ne peut pas faire autrement.
Vous devez vous connecter pour publier un commentaire.
Comparer datetime comme vous le feriez pour comparer des nombres tels que
Si vous avez besoin seulement de la date et de pas de temps, puis utiliser
Vous pouvez également utiliser de la journée de la différence de deux date.
Comparer des dates exemple:
Dates
pasStrings
.Votre question a une réponse à deux volets. Il y a peut être quelque chose de plus facile, mais:
D'abord de convertir votre chaîne à un objet DateTime. La classe DateTime a plusieurs méthodes pour vous aider à cela. Essayez ParseExact.
Ensuite, convertir l'objet DateTime pour un timestamp Unix.
Maintenant, vous avez deux entiers, que vous pouvez comparer, et de convertir l'int comparaison avec un autre type DateTime, et de prendre les choses à partir de là.
ne pas convertir les chaînes de