【问题标题】:Getting exception when using DateTime.Parse method使用 DateTime.Parse 方法时出现异常
【发布时间】:2011-06-03 07:08:23
【问题描述】:

所以,我有这个字符串“日期:2011 年 1 月 3 日星期一 19:29:44 GMT+0200”,当我使用 DateTime.Parse(date).ToString(); i' m 得到“字符串未被识别为有效的日期时间。”

如果我删除“+0200”部分,它可以正常工作,但它当然不会显示正确的当地时间。 那有什么问题?

【问题讨论】:

    标签: c# .net datetime time timezone


    【解决方案1】:

    documentation看来,DateTime.Parse()只懂:

    • GMT 指示符,单独使用,例如Mon, Jan 03 2011 17:29:44 GMT,或

    • 在没有GMT 指示符的情况下指定的时区偏移量,例如Mon, Jan 03 2011 19:29:44+02:00.

    您可能希望将日期字符串转换为第二种形式。

    【讨论】:

      【解决方案2】:

      这只是意味着时区偏移不是默认格式字符串的预期部分。

      如果您知道您期望的格式,我建议您致电DateTime.ParseExact(或DateTime.TryParseExact),指定要尝试的格式。查看custom date/time format strings 的文档了解更多详情。

      【讨论】:

      • @user361633:不要忘记您可以提供多种模式 - 我希望您至少知道 范围 的预期格式。
      【解决方案3】:

      你有两个错误。

      首先 - 不要使用 Parse 方法。更正确的是 TryParse。 其次 - 当您使用 Parse 或 TryParse 时不带参数时,您将遇到全球化问题。

      例如,看这段代码:

      DateTime.Parse("01.02.2011");在美国是 1 月 2 日。在德国是 2 月 1 日。

      所以,我建议您使用this article 中的格式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多