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



今天发现了这个:

 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'

几分钟过去了?为什么?

您使用的是Date属性,它截断了此处的时间部分:

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)。

试试这个

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

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

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

问题是您只得到DateTimeDate部分。如果您想要更改所需的值

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

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

相关内容

  • 没有找到相关文章