我有一个格式化的日期时间字符串,我想将其转换回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);
答案 0 :(得分:3)
是的,但这是在另一个模块中发生的。
我不甚至明白这是什么意思。我想你只是需要;
DateTime dtchk = dt;
没有更多。但无论如何......我试着解释一下;
如果您的字符串长度小于精度说明符,"D"
format specifier生成带前导零的字符串表示,那么temp
将是这些更宽的月,日,小时等格式的组合。
如果此字符串是standard date and time format的CurrentCulture
,则DateTime.Parse
会成功解析您的字符串。在你的情况下,它不是。
您需要使用ParseExact
解析字符串,以准确指定格式。
DateTime dtchk = DateTime.ParseExact(temp, "yyyyMMddHHmmss", null);