将此字符串格式转换为有效的DateTime?

时间:2016-02-24 17:21:43

标签: c# string datetime string-conversion

有问题的字符串:"2003:12:14 12:01:44"(yyyy:MM:dd hh:mm:ss)

我怎样才能将它转换为C#中的有效日期时间?我试过Convert.ToDateTime(str),但无济于事。

2 个答案:

答案 0 :(得分:3)

使用正确的DateTime格式并提供该格式的DateTime.ParseExact。请注意,由于您的time没有显示AM或PM,因此假设它使用24-Hr格式(使用大写HH)而不是12-Hr AM PM(不是{ {1}})格式。以下代码应该有效:

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); 格式here(标准)和here(自定义)。

答案 1 :(得分:1)

Convert.ToDateTime尝试将您的字符串解析为CurrentCulture设置的标准日期和时间格式。看起来这个字符串不是标准格式。

您可以使用DateTime.ParseExact指定自定义格式。

var dt = DateTime.ParseExact("2003:12:14 12:01:44", 
                             "yyyy:MM:dd hh:mm:ss", 
                             CultureInfo.InvariantCulture);