有人能指出我的所有时区引用的id在TimeZoneInfo.FindTimeZoneById()的完整列表吗?我在任何地方都找不到一个列表,我已经查看了. net文档。
当前回答
这是你要找的链接:
c#系统时区id
其他回答
从MSDN
ReadOnlyCollection<TimeZoneInfo> zones = TimeZoneInfo.GetSystemTimeZones();
Console.WriteLine("The local system has the following {0} time zones", zones.Count);
foreach (TimeZoneInfo zone in zones)
Console.WriteLine(zone.Id);
时区标识符列表,默认包含在Windows XP和Vista中:查找本地系统上定义的时区
这是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…即印度标准时间 下拉列表
DateTime dt;
TimeZoneInfo tzf;
tzf = TimeZoneInfo.FindSystemTimeZoneById("TimeZone String");
dt = TimeZoneInfo.ConvertTime(DateTime.Now, tzf);
lbltime.Text = dt.ToString();
这是经过充分测试并为我工作的代码。你可以复制粘贴到你的aspx页面和cs页面。
这是我的博客,你可以在这里下载完整的代码。谢谢。
http://www.c-sharpcorner.com/blogs/display-all-the-timezone-information-in-dropdown-list-of-a-local-system-using-c-sharp-with-asp-net
<form id="form1" runat="server"> <div style="font-size: 30px; padding: 25px; text-align: center;"> Get Current Date And Time Of All TimeZones </div> <hr /> <div style="font-size: 18px; padding: 25px; text-align: center;"> <div class="clsLeft"> Select TimeZone :- </div> <div class="clsRight"> <asp:DropDownList ID="ddlTimeZone" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlTimeZone_SelectedIndexChanged" Font-Size="18px"> </asp:DropDownList> </div> <div class="clearspace"> </div> <div class="clsLeft"> Selected TimeZone :- </div> <div class="clsRight"> <asp:Label ID="lblTimeZone" runat="server" Text="" /> </div> <div class="clearspace"> </div> <div class="clsLeft"> Current Date And Time :- </div> <div class="clsRight"> <asp:Label ID="lblCurrentDateTime" runat="server" Text="" /> </div> </div> <p> </p> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /> </form>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindTimeZone();
GetSelectedTimeZone();
}
}
protected void ddlTimeZone_SelectedIndexChanged(object sender, EventArgs e)
{
GetSelectedTimeZone();
}
/// <summary>
/// Get all timezone from local system and bind it in dropdownlist
/// </summary>
private void BindTimeZone()
{
foreach (TimeZoneInfo z in TimeZoneInfo.GetSystemTimeZones())
{
ddlTimeZone.Items.Add(new ListItem(z.DisplayName, z.Id));
}
}
/// <summary>
/// Get selected timezone and current date & time
/// </summary>
private void GetSelectedTimeZone()
{
DateTimeOffset newTime = TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow, TimeZoneInfo.FindSystemTimeZoneById(ddlTimeZone.SelectedValue));
//DateTimeOffset newTime2 = TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow, TimeZoneInfo.FindSystemTimeZoneById(ddlTimeZone.SelectedValue));
lblTimeZone.Text = ddlTimeZone.SelectedItem.Text;
lblCurrentDateTime.Text = newTime.ToString();
string str;
str = lblCurrentDateTime.Text;
string s=str.Substring(0, 10);
DateTime dt = new DateTime();
dt = Convert.ToDateTime(s);
// Response.Write(dt.ToString());
Response.Write(ddlTimeZone.SelectedValue);
}
推荐文章
- 将一个列表分成大约相等长度的N个部分
- 随机字符串生成器返回相同的字符串
- 为什么Func<T,bool>而不是Predicate<T>?
- .NET中的Map和Reduce
- 我如何能使一个组合框不可编辑的。net ?
- .NET反射的成本有多高?
- 实体框架回滚并移除不良迁移
- 将流转换为字符串并返回
- 在python中zip的逆函数是什么?
- 在c#中检查字符串是否只包含数字的最快方法
- IEquatable和重写Object.Equals()之间的区别是什么?
- 创建一个堆栈大小为默认值50倍的线程有什么危险?
- 转换JSON字符串到JSON对象c#
- 如何在元组列表中获得第一个元素?
- 显示两个datetime值之间的小时差值