将特定格式的dateTime字符串转换为C#中的DateTime

时间:2015-06-17 06:53:34

标签: c# asp.net datetime

我有一个格式化的日期时间字符串,我想将其转换回DateTime但是当我解析或将该字符串转换为DateTime时,它会抛出异常,即该字符串不是有效的dateTime。

以下是如何创建DateTime字符串

string temp = dt.Year.ToString("D4") + 
              dt.Month.ToString("D2") + 
              dt.Day.ToString("D2") + 
              dt.Hour.ToString("D2") + 
              dt.Minute.ToString("D2") + 
              dt.Second.ToString("D2");

以下是我如何将其解析回DateTime

 DateTime dtchk = DateTime.Parse(temp);

1 个答案:

答案 0 :(得分:3)

  

是的,但这是在另一个模块中发生的。

我不甚至明白这是什么意思。我想你只是需要;

DateTime dtchk = dt;

没有更多。但无论如何......我试着解释一下;

如果您的字符串长度小于精度说明符,"D" format specifier生成带前导零的字符串表示,那么temp将是这些更宽的月,日,小时等格式的组合。

如果此字符串是standard date and time formatCurrentCulture,则DateTime.Parse会成功解析您的字符串。在你的情况下,它不是。

您需要使用ParseExact解析字符串,以准确指定格式。

DateTime dtchk = DateTime.ParseExact(temp, "yyyyMMddHHmmss", null);