【发布时间】:2016-10-15 06:46:40
【问题描述】:
我的以下代码如下。它适用于大多数情况,但今天我的一种情况是expiration_date 是09/30/2017 00:00:00 小于currentDateTime,string 是10/15/2016 14:34:19?我刚刚比较为 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"));
}
【问题讨论】:
-
您应该直接比较日期而不是将它们转换为字符串。如果您仍然坚持在比较之前转换为字符串,则应使用随日期增加而增加的格式,即
"yyyy/MM/dd HH:mm:ss" -
不需要
insist将两个日期转换成字符串来比较两个日期。由于转换,实际上是“较慢”。除非您不能这样做,否则不要更改值的域。
标签: c# datetime comparison