这是一个C#DateTime错误(在1970年代缺少分钟,小时和秒)..是错误还是功能?

时间:2014-04-09 08:47:19

标签: c# string datetime

今天发现了这个:

 DateTime myDateTime = Convert.ToDateTime("1972-12-12 12:12:12");
 Debug.WriteLine(myDateTime);    // shows '12/12/1972 12:12:12'
 String myString = myDateTime.Date.ToString("yyyy-MM-dd HH:mm:ss");
 Debug.WriteLine(myString );     // shows '1972.12.12 00:00:00'
几分钟过去了?那是为什么?

4 个答案:

答案 0 :(得分:4)

你正在使用截断时间部分的Date property

String myString = myDateTime.Date.ToString("yyyy-MM-dd HH:mm:ss");

所以这给出了期望的结果:

String myString = myDateTime.ToString("yyyy-MM-dd HH:mm:ss");

MSDN

  

与此实例具有相同日期的新对象和时间值   设置为午夜12:00:00(00:00:00)。

答案 1 :(得分:0)

试试这个

myDateTime.ToString("yyyy-MM-dd HH:mm:ss");

答案 2 :(得分:0)

如果要将DateTime实例与任何其他日期进行比较,例如检查是否myDateTimeInstance == DateTime.Today,则需要消除DateTime实例的时间部分。

这是 myDateTimeInstance.Date的目的:只返回日期,因此可以在忽略时间的情况下使用它。

答案 3 :(得分:0)

问题是您只获得Date的{​​{1}}部分。 如果您想要期望的价值变化

DateTime

String myString = myDateTime.Date.ToString("yyyy-MM-dd HH:mm:ss");