【问题标题】:String to DateTime conversion fails字符串到日期时间的转换失败
【发布时间】:2017-04-30 21:17:48
【问题描述】:

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

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

我猜这对应于

"yyyy-MM-ddThh:mm:sszzz"

我的问题是,当我尝试将此字符串转换为日期时,它适用于第一个日期,但不适用于第二个日期。第二个在 15 小时失败。例如,如果我将其更改为 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);

这失败了,但有异常:

字符串未被识别为有效的日期时间。

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

【问题讨论】:

    标签: c# datetime type-conversion


    【解决方案1】:

    使用大写 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);
    

    【讨论】:

      猜你喜欢
      • 2013-03-13
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      相关资源
      最近更新 更多