有人能指出我的所有时区引用的id在TimeZoneInfo.FindTimeZoneById()的完整列表吗?我在任何地方都找不到一个列表,我已经查看了. net文档。


当前回答

这是你要找的链接:

c#系统时区id

其他回答

我知道这是一个老问题,但微软现在似乎已经通过MSDN提供了这一点。

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

这是你要找的链接:

c#系统时区id

下面是一个程序及其结果的完整列表。

代码:

using System;

namespace TimeZoneIds
{
    class Program
    {
        static void Main(string[] args)
        {
            foreach (TimeZoneInfo z in TimeZoneInfo.GetSystemTimeZones())
            {
                // For a Console App
                Console.WriteLine(z.Id + "," + z.BaseUtcOffset + "," + z.StandardName + "," + z.DisplayName + "," + z.DaylightName);
                // For any other App
                System.Diagnostics.Debug.WriteLine(z.Id + "," + z.BaseUtcOffset + "," + z.StandardName + "," + z.DisplayName + "," + z.DaylightName);
            }
        }
    }
}

结果会随着时间而改变:

下面是微软提供的时区列表

您将在这里找到完整的时区列表及其GMToffsets,您可以使用“时区名称”列值按ID查找时区

e.g

TimeZoneInfo objTimeZoneInfo = TimeZoneInfo.FindTimeZoneById("Dateline Standard Time");

您将得到时区信息类,其中包含用于GMT-12:00的日期线标准时区。