首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两个国家/地区之间的c#计算时间差异

两个国家/地区之间的c#计算时间差异
EN

Stack Overflow用户
提问于 2009-09-08 07:12:23
回答 2查看 1.2K关注 0票数 4

我想知道两个国家的时差。当然存在静态时差,但在某些时间段,夏令时介于两者之间。据我所知,一些国家的DST时间也不同,所以6月1日a国和b国之间的差异可以是1小时,7月1日根据dst可以是2小时,8月1日可以是1,以此类推。

它有一个框架函数吗?还是我必须自己计算它?

米歇尔

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-08 07:14:40

您需要知道:

  • 两个时区(使用UTC 3.5中的TimeZoneInfo,请记住,一个国家/地区可以有多个时区)在时间上为一个瞬间,例如UTC DateTime或.NET

在这一点上,这是相对简单的:使用TimeZoneInfo.ConvertTime将UTC即时时间转换为两个时区的本地时间,然后从另一个时区减去一个。或者,对它们都使用TimeZoneInfo.GetUtcOffset,并从另一个偏移中减去一个偏移。

下面是一个例子,来找出伦敦和山景城之间目前的区别:

代码语言:javascript
复制
using System;

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

        TimeSpan mountainViewOffset = mountainView.GetUtcOffset(now);
        TimeSpan londonOffset = london.GetUtcOffset(now);

        Console.WriteLine(londonOffset-mountainViewOffset); // 8 hours
    }
}
票数 7
EN

Stack Overflow用户

发布于 2009-09-08 07:34:00

找出任何历史差异(即对于过去一个时区或两个时区的本地DST策略不同的日期),您必须存储每个时区的DST开始/结束/偏移的过去策略,并自己解决它们。

如果您可以根据加载到Windows中的当前规则集来了解它们之间的区别,那么内置的.NET方法就简单明了。

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

https://stackoverflow.com/questions/1392432

复制
相关文章

相似问题

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