我有我的以下代码如下。它适用于大多数情况下,但今天我有一种情况,其中expiration_date
是09/30/2017 00:00:00
小于currentDateTime
这是string
作为10/15/2016 14:34:19
?我只是比较string
的缺陷是什么?C#正确的方法来比较2日期时间
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"));
}
您应该直接比较日期而不是将它们转换为字符串。如果仍然坚持在比较之前转换为字符串,则应该使用随日期增加而增加的格式,即''yyyy/MM/dd HH:mm:ss'' –
无需“坚持”转换两个日期字符串比较两个日期。实际上由于转换而变得“较慢”。除非你不能这样做,否则不要改变值的域。 – shadow