【问题标题】:Is there an API to convert from "YYYYMMDDHHMMSS.UUUUUU-TZO" format to C# DateTime?是否有将“YYYYMMDDHHMMSS.UUUUUU-TZO”格式转换为 C# DateTime 的 API?
【发布时间】:2010-10-30 00:11:08
【问题描述】:

示例:“20080807144334.410187-180”(-180 表示格林威治标准时间减去三个小时。在这种情况下为里约热内卢。)

当我通过 WMI 查询文件创建/更改/访问时间时,会返回该字符串格式(这并不完全有效;请参阅 here)。我想我可以用白痴的方式解析它,从字符串位置提取年、月等。但我不想重新发明轮子。 System.DateTime 的构造函数不处理该格式。我应该继续以白痴的方式去做还是有更好的方法?

【问题讨论】:

    标签: c# string datetime type-conversion


    【解决方案1】:

    您应该能够使用DateTime.ParseExact 或.TryParseExact 为其指定解析时使用的特定格式。

    但是,我认为您无法让它以该格式读取您的时区(尽管我实际上无法弄清楚如何让它以任何格式读取时区)。

    其余部分如下所示:

    DateTime.ParseExact("20080807144334.410187", "yyyyMMddHHmmss.ffffff", System.Globalization.CultureInfo.InvariantCulture)
    

    【讨论】:

    • 谢谢!它有效,并且不会重新发明轮子,但对于宙斯来说,它是丑陋的。看哪:retVal.CreationDate = DateTime.ParseExact(((string)queryObj["CreationDate"]).Substring(0,21), "yyyyMMddHHmmss.ffffff", System.Globalization.CultureInfo.InvariantCulture);
    【解决方案2】:

    您应该看看 DateTime.TryParseExact 方法。它可以让您传递要转换的格式。

    http://msdn.microsoft.com/en-us/library/system.datetime.tryparseexact.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-29
      • 2023-04-02
      • 2016-09-08
      • 2012-10-17
      • 2021-06-22
      • 1970-01-01
      相关资源
      最近更新 更多