【问题标题】:Add 0's to dates where it is missing in c#?将 0 添加到 c# 中缺少的日期?
【发布时间】:2011-02-10 14:05:57
【问题描述】:

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

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;

但后来我发现它可能每个月都一样,所以必须有更好的方法来检查这个?

【问题讨论】:

    标签: c#


    【解决方案1】:

    为什么不同时解析两者,一个是格式字符串“dd/MM/yyyy”,一个是格式字符串“d/M/yyyy”,然后比较返回的DateTime 值?毕竟,所表示的日期是重要的部分,而不是 string 表示,大概是。

    【讨论】:

    • 哈,太简单了……你先回答了,谢谢,谢谢大家的cmets!
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      查看DateTime.TryParse 方法。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            猜你喜欢
            • 2014-11-04
            • 1970-01-01
            • 2020-05-07
            • 1970-01-01
            • 1970-01-01
            • 2017-12-02
            • 1970-01-01
            • 2018-10-15
            • 1970-01-01
            相关资源
            最近更新 更多