字符串到DateTime转换失败

时间:2016-12-15 10:01:09

标签: c# datetime type-conversion

我必须以下列格式解析包含日期时间的导入文件:

  

“2016-12-02T09:23:20 + 01:00”
  “2016-12-08T15:31:49 + 01:00”

我猜这对应于

  

“YYYY-MM-DDTHH:MM:sszzz”

我的问题是,当我尝试将此字符串转换为日期时,它适用于第一个日期,但不适用于第二个日期。第二个小时的第二个失败。如果我将其改为11,例如它再次起作用 因此,这种格式似乎没有使用24小时表示法。

我的转换代码是:

string test = "2016-12-02T09:23:20+01:00";
DateTime dateTest = DateTime.ParseExact(test, "yyyy-MM-ddThh:mm:sszzz", System.Globalization.CultureInfo.CurrentCulture);

这有效,但是当我做的时候

string test = "2016-12-08T15:31:49+01:00";
DateTime dateTest = DateTime.ParseExact(test, "yyyy-MM-ddThh:mm:sszzz", System.Globalization.CultureInfo.CurrentCulture);

失败,但有例外:

  

字符串未被识别为有效的DateTime。

我的问题是,如何将此格式的日期转换为日期时间?

1 个答案:

答案 0 :(得分:6)

使用大写HH 24小时。

这应该有效:

string test = "2016-12-08T15:31:49+01:00";
DateTime dateTest = DateTime.ParseExact(test, "yyyy-MM-ddTHH:mm:sszzz", System.Globalization.CultureInfo.CurrentCulture);