首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取当前两个时区的时差

如何获取当前两个时区的时差
EN

Stack Overflow用户
提问于 2010-10-07 12:58:31
回答 4查看 17.6K关注 0票数 15

我想计算美国/中部时区和英国夏令时之间的当前时差。我的意思是,目前这两个时区都有夏令时,所以它们有6小时的时差。但在2010年10月31日星期日之后,英国夏令时将取消,届时这两个时区之间将有5小时的时差。

有没有什么方法可以计算出这些变化的时间差?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-10-07 13:07:35

您可以从不同的时区创建两个datetime对象,一个很好的例子是:Creating a DateTime in a specific Time Zone in c# fx 3.5

并计算它们之间的差值。

票数 5
EN

Stack Overflow用户

发布于 2010-10-07 14:22:15

为了给出答案提供一些具体的代码,这里有一些代码来解决我(在伦敦)和我在Mountain View的同事之间的当前差异:

代码语言:javascript
复制
using System;

class Test
{
    static void Main()
    {
        var london = TimeZoneInfo.FindSystemTimeZoneById
            ("GMT Standard Time");
        var googleplex = TimeZoneInfo.FindSystemTimeZoneById
            ("Pacific Standard Time");

        var now = DateTimeOffset.UtcNow;
        TimeSpan londonOffset = london.GetUtcOffset(now);
        TimeSpan googleplexOffset = googleplex.GetUtcOffset(now);
        TimeSpan difference = londonOffset - googleplexOffset;        
        Console.WriteLine(difference);
    }
}
票数 25
EN

Stack Overflow用户

发布于 2010-10-07 13:23:51

我有正确的答案,如果你把自己限制在当前日期,这将是最有效的。一般来说,根据你想要的正确程度,这可能是相当困难的。这是因为今天时区的DST可能不同于历史上的DST。也许在1950年4月1日之前没有英国夏令时。或者在悉尼奥运会期间,美国夏令时的日期在2000年被临时更改。要考虑所有这些因素,您将需要一个历史DST/时区数据库。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3878815

复制
相关文章

相似问题

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