C# 是否将0添加到c中缺少的日期?

C# 是否将0添加到c中缺少的日期?,c#,C#,我有一个字符串,其值的格式为 dd/mm/yyyy 现在我想将其与另一个字符串进行比较,并检查它们是否相等,另一个字符串的值可以为 dd/mm/yyyy 或者有时当一天介于1和9之间时: d/mm/yyyy dd/m/yyyy 有时,当月份介于1和9之间时: d/mm/yyyy dd/m/yyyy 因此,有几个实例中字符串不相等,但实际日期相等。 首先,我只看到在某些情况下,当一天在1-9之间时,它不会以零开始,所以我做到了: createdDate = dateField.valu

我有一个字符串,其值的格式为

dd/mm/yyyy
现在我想将其与另一个字符串进行比较,并检查它们是否相等,另一个字符串的值可以为

dd/mm/yyyy
或者有时当一天介于1和9之间时:

d/mm/yyyy
dd/m/yyyy
有时,当月份介于1和9之间时:

d/mm/yyyy
dd/m/yyyy
因此,有几个实例中字符串不相等,但实际日期相等。 首先,我只看到在某些情况下,当一天在1-9之间时,它不会以零开始,所以我做到了:

createdDate = dateField.value.ToString().Substring(0, 10);
createdDate = createdDate.Trim();
if (createdDate.Length == 9)
    createdDate = "0" + createdDate;

但后来我发现,月份可以是相同的,因此必须有更好的方法来检查这一点?

为什么不同时解析这两种格式,一种是格式字符串dd/MM/yyyy,另一种是格式字符串d/M/yyyy,并比较返回的日期时间值?毕竟,被表示的日期是重要的部分,而不是字符串表示。

您应该使用DateTime.Parse将这两个值转换为日期,然后比较日期

DateTime.Parse("01/01/2001") == DateTime.Parse("1/1/2001")

当字符串表示日期时,为什么不尝试将它们解析为日期,并比较您成为的日期实例呢

您只需确保在解析时使用正确的模式


查看DateTime.TryParse方法。

我会将两个日期解析为DateTime,然后比较它们,这样您就不必担心比较中的不同格式。

首先,将字符串解析为DateTime类型的值,然后使用标准的相等比较器==来比较日期。

哈,太简单了。。。你首先回答,谢谢,谢谢大家的评论!
DateTime.Parse("01/01/2001") == DateTime.Parse("1/1/2001")