DateTime.ParseExact不适用于" yyyy-MM-dd HH:mm:ss"

时间:2017-07-27 12:53:01

标签: c# date datetime

我将System.DateTime.Now存储在一个名为 StartDate 的变量中(变量的类型为DateTime?)。

我将其转换为字符串,如下所示:

string temp = StartDate.Value.ToString("yyyy-MM-dd HH:mm:ss")

现在临时值有" yyyy-MM-dd HH:mm:ss "。

现在我想再次将字符串 temp 转换为 DateTime ,所以,我的工作如下:

DateTime.ParseExact(temp,"yyyy-MM-dd HH:mm:ss",null)

但这不起作用。

它始终以与System.DatTime.Now相同的格式返回日期。它应返回" yyyy-MM-dd HH:mm:ss"格式。

1 个答案:

答案 0 :(得分:3)

DateTime类型的值不具有特定格式。该日期和时间存储为几个整数值(每个组件一个,但更紧凑)。

解析字符串时,该字符串中表示的日期将存储为那些整数。

只有当您执行.ToString()(可能具有某种格式)时,才能以特定格式获得该日期的字符串表示

当您将鼠标悬停在调试器中的DateTime值上时,您会看到普通.ToString()的结果,使用某些特定的当前文化。

ParseParseExact之间的区别在于Parse会尝试多种格式(并且可能会失败,例如" 2017年2月3日和#34; - FEB第3或第3个MAR? )使用ParseExact时,您自己提供一种或多种格式。在这两种情况下,您最终都会得到相同DateTime类型的值。