首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从UTC转换回UTC

从UTC转换回UTC
EN

Stack Overflow用户
提问于 2020-05-04 18:07:25
回答 1查看 28关注 0票数 0

我正在处理一些来自世界各地的JSON日期,我收集的日期是UTC,但当我解析JSON数据时,它忽略了'Z',它忘记了这是一个UTC日期,而且date kine是'local‘而不是'utc’,这很奇怪。似乎你需要传入CultureInfo.InvariantCulture,DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal parts才能让它识别Z。所以,如果其他人遇到麻烦,试试这个吧。

代码语言:javascript
复制
        DateTime expected = System.DateTime.UtcNow;
        // var isoDate = new Date('yourdatehere').toISOString(); 
        string isoDate = expected.ToString("u").Replace(' ', 'T'); //  eg "2020-05-04T09:24:03Z   vs 2020-05-04T10:24:03 BST

        DateTime actual = DateTime.Parse(isoDate); // should process the Z as its a GMT date zulu - FAIL
        actual = DateTime.ParseExact(isoDate,
            "yyyy-MM-ddTHH:mm:ssZ",
            CultureInfo.InvariantCulture,
            DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal);// PASS
        Assert.IsTrue(expected.Hour == actual.Hour, "Essential Parsing of zulu date");
        Assert.IsTrue(actual.Kind == DateTimeKind.Utc ,"surely It must have seen the Z?");

        Assert.AreEqual(expected  ,actual ,"Back where we started");
EN

回答 1

Stack Overflow用户

发布于 2020-05-04 18:07:25

要观察的密钥位是

代码语言:javascript
复制
  actual = DateTime.ParseExact(isoDate,
         "yyyy-MM-ddTHH:mm:ssZ",
        CultureInfo.InvariantCulture,
        DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal );// PASS
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61589717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档