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


当前回答

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

其他回答

时区标识符列表,默认包含在Windows XP和Vista中:查找本地系统上定义的时区

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

代码:

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);
            }
        }
    }
}

结果会随着时间而改变:

DateTime dt;
TimeZoneInfo tzf;
tzf = TimeZoneInfo.FindSystemTimeZoneById("TimeZone String");
dt = TimeZoneInfo.ConvertTime(DateTime.Now, tzf);
lbltime.Text = dt.ToString();

这是c#中的SelectListItem (asp .net)

你可以在后台写代码:

public static List<SelectListItem> GetTimezoneList()
{
    try
    {
        // list of timezone
        List<SelectListItem> timezoneList = new List<SelectListItem>();

        timezoneList.Add(new SelectListItem() { Value = "", Text = "Select TimeZone...", Selected = false });
                
        var timezoneInfo = TimeZoneInfo.GetSystemTimeZones();
                
        foreach (var item in timezoneInfo)
        {
            timezoneList.Add(new SelectListItem() 
            {
                Value = item.StandardName, Text = item.DisplayName, Selected = false });
            }
            return timezoneList;
        }
    }
    catch (Exception e)
    {
        throw e;
    }
}

在前端

@Html.DropDownListFor(s => s.TimeZone, YourbackendServiceName.GetTimezoneList(), new { @class = "form-control input-md" })

这将给你所有的时区DisplayName…即印度标准时间 下拉列表

var timeZoneInfos = TimeZoneInfo.GetSystemTimeZones();

上面给出了一个时区列表,其中包括id。