当前位置:  开发笔记 > 开发工具 > 正文

如何枚举.NET中的所有时区?

如何解决《如何枚举.NET中的所有时区?》经验,为你挑选了1个好方法。

我想有一个Windows机器上所有可用时区的列表.我怎么能在.NET中这样做?

我知道TimeZoneInfo.GetSystemTimeZones方法,但这只返回当前选定的时区

DateTimeOffset current = DateTimeOffset.Now;
ReadOnlyCollection timeZones = TimeZoneInfo.GetSystemTimeZones();
Console.WriteLine("You might be in the following time zones:");
foreach (TimeZoneInfo timeZoneInfo in timeZones)
{
   // Compare offset with offset for that date in that time zone
   if (timeZoneInfo.GetUtcOffset(current).Equals(current.Offset))
   {
        Console.WriteLine("   {0}", timeZoneInfo.DisplayName);
   }
}

Robert C. Ba.. 42

不,它没有,它返回Windows机器知道的每个时区(在我的安装中,那是91).if你在那里的陈述是限制你的输出.拿出来然后离开Console.WriteLine部分,你会看到所有91个(左右)时区.

例如

ReadOnlyCollection timeZones = TimeZoneInfo.GetSystemTimeZones();

foreach (TimeZoneInfo timeZoneInfo in timeZones)
  Console.WriteLine("{0}", timeZoneInfo.DisplayName);

这应该写出91个时区到你的控制台.



1> Robert C. Ba..:

不,它没有,它返回Windows机器知道的每个时区(在我的安装中,那是91).if你在那里的陈述是限制你的输出.拿出来然后离开Console.WriteLine部分,你会看到所有91个(左右)时区.

例如

ReadOnlyCollection timeZones = TimeZoneInfo.GetSystemTimeZones();

foreach (TimeZoneInfo timeZoneInfo in timeZones)
  Console.WriteLine("{0}", timeZoneInfo.DisplayName);

这应该写出91个时区到你的控制台.

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有