[Test]
public void Sadness()
{
var dateTime = DateTime.UtcNow;
Assert.That(dateTime, Is.EqualTo(DateTime.Parse(dateTime.ToString())));
}
失败:
Expected: 2011-10-31 06:12:44.000
But was: 2011-10-31 06:12:44.350
我希望了解ToString()等方法背后导致此行为的原因。
编辑:在看到Jon的答案之后:
[Test]
public void NewSadness()
{
var dateTime = DateTime.UtcNow;
Assert.That(dateTime, Is.EqualTo(DateTime.Parse(dateTime.ToString("o"))));
}
结果:
Expected: 2011-10-31 12:03:04.161
But was: 2011-10-31 06:33:04.161
相同的结果使用大写和小写的'o'。我正在阅读文档,但仍然不清楚。
CultureInfo.InvariantCulture
没有起到作用:它产生了期望值:2011-10-31 12:09:51.928 但实际值是:2011-10-31 06:39:51.928
。 - Zasz