【问题标题】:DateTime parsing complicated strings C#DateTime 解析复杂的字符串 C#
【发布时间】:2012-10-30 23:24:08
【问题描述】:

我正在尝试使用以下格式将日期字符串解析为 DateTime 对象:

2012 年 10 月 30 日星期二 09:51:20 +0000

到目前为止,我尝试过使用 DateTime.ParseExact() 的许多不同变体。

我试过了:

DateTime.ParseExact("Mon, 29 Oct 2012 12:13:51 +0000", 
                    "ddd, dd MM yyyy hh':'mm':'ss zzz", 
                     CultureInfo.InvariantCulture);

使用数千种不同的格式作为第二个参数,使用 null 而不是 InvarantCulture 作为第三个参数等等。我无法让它工作。我应该如何解析这样的字符串?

非常感谢。

【问题讨论】:

    标签: c# datetime


    【解决方案1】:

    怎么样

    var s = "Tue, 30 Oct 2012 09:51:20 +0000";
    DateTime.ParseExact(s, "ddd, dd MMM yyyy hh:mm:ss zzz", CultureInfo.InvariantCulture)
    

    月份(Oct)实际上是MMM,而不是MM,时间(09:51:20)应该是hh:mm:ss而不是hh':'mm':'ss

    【讨论】:

    • 请注意,如果您想使用 24 小时制时钟而不是 12 小时制时钟,您可能需要使用 HH 而不是 hh
    • 另外,根据你感兴趣的DateTimeKind,看看zzzK的区别
    【解决方案2】:

    正确的解析是

    DateTime.ParseExact("Mon, 29 Oct 2012 12:13:51 +0000", "ddd, dd MMM yyyy HH:mm:ss K", CultureInfo.InvariantCulture);
    

    看看here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      • 1970-01-01
      • 1970-01-01
      • 2016-06-20
      • 1970-01-01
      相关资源
      最近更新 更多