修剪后比较两个字符串值

时间:2016-11-02 10:44:47

标签: c# asp.net

我有两个约会。

ReleaseDates = "11/2/2016";
LiveDate =  "11/02/2016";

以上两个日期相同。但在我的下面编码中,它返回FALSE。

if (ReleaseDates.Contains(LiveDate.TrimStart(new Char[] { '0' })))
 {

 }

2 个答案:

答案 0 :(得分:2)

您的代码无效,因为TrimStart会删除字符串 start 处的字符。看起来LiveDate开头没有零;要修剪的字符'0'位于索引3处,前面是其他字符。这就是它没有被修剪的原因。

比较代表日期的字符串是一种容易出错的策略。您最好解析两个字符串,并将结果作为DateTime个对象进行比较。

通常,您应将日期保留为为日期表示设计的对象 - 例如DateTimeDateTimeOffset。这样可以自定义日期表示以便显示,并避免日期格式从mm / dd变为dd / mm时出错。

答案 1 :(得分:0)

这是因为你没有比较日期,你正在比较两个不相同的字符串。你最好的镜头是首先解析然后比较。

DateTime releaseDate = DateTime.Parse(ReleaseDates);
DateTime liveDate = DateTime.Parse(LiveDate);
if (releaseDate == liveDate) // This should be true.
{
    // Do stuff.
}