我有一个格式为
的字符串dd/mm/yyyy
现在我想将它与另一个字符串进行比较并检查它们是否相等,另一个字符串的值可以是
dd/mm/yyyy
或有时当天在1到9之间时:
d/mm/yyyy
有时当月份在1到9之间时:
dd/m/yyyy
所以有几个实例,字符串不相等但实际日期是。 首先,我只看到在某些情况下当一天在1-9之间时,它不会以零开始,所以我做了:
createdDate = dateField.value.ToString().Substring(0, 10);
createdDate = createdDate.Trim();
if (createdDate.Length == 9)
createdDate = "0" + createdDate;
但后来我发现月份可能相同,所以必须有更好的方法来检查这个吗?
答案 0 :(得分:7)
为什么不解析两者,一个格式字符串为“dd / MM / yyyy”,另一个格式字符串为“d / M / yyyy”,并比较返回的DateTime
值?毕竟,所代表的日期是重要的部分,而不是 string 表示。大概是。
答案 1 :(得分:1)
您应该使用DateTime.Parse将这两个值转换为日期,然后比较日期。
DateTime.Parse("01/01/2001") == DateTime.Parse("1/1/2001")
答案 2 :(得分:0)
当它是表示日期的字符串时,为什么不尝试将它们解析为日期,并比较你成为的日期实例?
你必须确保在解析时使用正确的模式。
查看DateTime.TryParse
方法。
答案 3 :(得分:0)
我会将这两个日期解析为DateTime
,然后对它们进行比较,这样您就不必担心比较中的不同格式了。
答案 4 :(得分:0)
首先,将字符串解析为DateTime
(DateTime.ParseExact)类型的值,然后使用标准相等比较器(==
)来比较日期。