我有两个约会。
ReleaseDates = "11/2/2016";
LiveDate = "11/02/2016";
以上两个日期相同。但在我的下面编码中,它返回FALSE。
if (ReleaseDates.Contains(LiveDate.TrimStart(new Char[] { '0' })))
{
}
答案 0 :(得分:2)
您的代码无效,因为TrimStart
会删除字符串 start 处的字符。看起来LiveDate
开头没有零;要修剪的字符'0'
位于索引3处,前面是其他字符。这就是它没有被修剪的原因。
比较代表日期的字符串是一种容易出错的策略。您最好解析两个字符串,并将结果作为DateTime
个对象进行比较。
通常,您应将日期保留为为日期表示设计的对象 - 例如DateTime
或DateTimeOffset
。这样可以自定义日期表示以便显示,并避免日期格式从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.
}