我有以下代码,但它无法比较日期转换为字符串可以任何身体帮助我提前感谢
DateTime dt = DateTime.Now;
List<DateTime> dateTimes = new List<DateTime>();
dateTimes.Add(dt);
dateTimes.Add(dt);
dateTimes.Add(dt);
string str = dt.ToString();
DateTime myDateTime = DateTime.Parse(str);
var query = from d in dateTimes
where d == myDateTime
select d;
foreach (var result in query)
{
Console.WriteLine(result);
}
Console.Read();
答案 0 :(得分:1)
原因是ToString方法略微截断了实际时间,因此当你向另一个方向返回时结果不一样。
例如,用
替换第一行DateTime dt = new DateTime(2009,10,29,16,35,56);
你会看到发生了什么。
答案 1 :(得分:0)
当你需要在类型之间切换时,我建议不要频繁使用ToString(),更好的方法是使用自定义对象至少比较专用的方法版本,比如CompareTo。
试试这个
DateTime dt = DateTime.Now; 列出dateTimes = new List(); dateTimes.Add(DT); dateTimes.Add(DT); dateTimes.Add(DT); string str = dt.ToString(); DateTime myDateTime = DateTime.Parse(str);
var query = from d in dateTimes
where d.CompareTo(myDateTime) == 1
select d;
foreach (var result in query)
{
Console.WriteLine(result);
}
Console.Read();
此致
Usman Afzal
答案 2 :(得分:0)
我已经解决了这个问题 解决方案是不要将日期时间格式的时间戳保存在字符串中,你应该将datetime对象转换为其相应的刻度并将该刻度存储在字符串变量中,并且当你想使日期对象使用下面的代码行时 DateTime myDateTime = new DateTime(int64.Parse(strDateTimeTicks)); 这将返回确切的日期时间对象