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

本文关键字:字符串 dateTime 转换 DateTime 格式 定格 | 更新日期: 2023-09-27 17:56:52

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

以下是创建日期时间字符串的方式

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 dtchk = DateTime.Parse(temp);

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

是的,但这发生在不同的模块中。

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

DateTime dtchk = dt;

而已。但无论如何..我试图解释;

由于"D"格式说明符会生成带有前导零的字符串表示形式(如果字符串长度小于精度说明符),因此temp将是月、日、小时等这些更宽格式的组合。

如果此字符串是CurrentCulture的标准日期和时间格式,DateTime.Parse 成功解析您的字符串。在您的情况下,事实并非如此。

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

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