将此字符串格式转换为有效的 DateTime?
Converting this string format to a valid DateTime?
有问题的字符串:"2003:12:14 12:01:44"
(yyyy:MM:dd hh:mm:ss)
我如何才能将其转换为 C# 中的有效日期时间?我尝试了 Convert.ToDateTime(str)
,但无济于事。
Convert.ToDateTime
尝试将您的字符串解析为 CurrentCulture
设置的标准日期和时间格式。看起来这个字符串不是标准格式。
您可以使用 DateTime.ParseExact
指定自定义格式。
var dt = DateTime.ParseExact("2003:12:14 12:01:44",
"yyyy:MM:dd hh:mm:ss",
CultureInfo.InvariantCulture);
使用正确的 DateTime
格式并使用该格式提供 DateTime.ParseExact
。请注意,由于您的 time
不显示 AM 或 PM,假设它使用 24 小时格式(使用大写 HH
)可能比 12 小时 AM PM(不是 hh
) 格式。以下代码应该有效:
string format = "yyyy:MM:dd HH:mm:ss"; //note: use HH not hh
var result = DateTime.ParseExact("2003:12:14 12:01:44", format, CultureInfo.InvariantCulture);
有问题的字符串:"2003:12:14 12:01:44"
(yyyy:MM:dd hh:mm:ss)
我如何才能将其转换为 C# 中的有效日期时间?我尝试了 Convert.ToDateTime(str)
,但无济于事。
Convert.ToDateTime
尝试将您的字符串解析为 CurrentCulture
设置的标准日期和时间格式。看起来这个字符串不是标准格式。
您可以使用 DateTime.ParseExact
指定自定义格式。
var dt = DateTime.ParseExact("2003:12:14 12:01:44",
"yyyy:MM:dd hh:mm:ss",
CultureInfo.InvariantCulture);
使用正确的 DateTime
格式并使用该格式提供 DateTime.ParseExact
。请注意,由于您的 time
不显示 AM 或 PM,假设它使用 24 小时格式(使用大写 HH
)可能比 12 小时 AM PM(不是 hh
) 格式。以下代码应该有效:
string format = "yyyy:MM:dd HH:mm:ss"; //note: use HH not hh
var result = DateTime.ParseExact("2003:12:14 12:01:44", format, CultureInfo.InvariantCulture);