【问题标题】:When using DateTime.ParseExact, how do you specify what the timezone is of the given date?使用 DateTime.ParseExact 时,如何指定给定日期的时区?
【发布时间】:2011-09-16 14:00:20
【问题描述】:

鉴于以下情况:

DateTime.ParseExact(timeStamp, "yyyyMMdd-HH:mm:ss.fff", System.Globalization.CultureInfo.InvariantCulture);

如何指定给定时间是 UTC?现在结果是给它我当前的时区。

【问题讨论】:

    标签: c# .net datetime timezone


    【解决方案1】:

    添加DateTimeStyles.AssumeUniversal,因为格式中没有指定。

    DateTime.ParseExact(timeStamp, "yyyyMMdd-HH:mm:ss.fff", System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
    

    【讨论】:

      【解决方案2】:

      您可以像这样在解析字符串的末尾包含时区偏移量

      DateTime.Parse("2011-01-01 12:00:00-5:00")

      http://msdn.microsoft.com/en-us/library/1k1skd40.aspx

      【讨论】:

      • ParseExact 不同,你不知道它的格式
      【解决方案3】:

      根据 agent-j 的回答,您可以将 DateTimeStyles 添加到 DateTime.Parse(...)

      date= "Wed, 16 Oct 2013 00:00:00 GMT";` // from javascript.getUTCString()
      
      DateTime.Parse(date, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-17
        • 1970-01-01
        • 2019-07-11
        • 2013-12-30
        • 2021-12-06
        • 1970-01-01
        • 2010-09-07
        相关资源
        最近更新 更多