获取时区标准名称(非本地)
Get a Time Zone StandardName (Not Local)
首先我会说我在 C# 方面经验不足,我正在编写一个 Windows 表单应用程序 写入 XML 文件,PowerShell 稍后可以在配置期间的不同点从中读取元素。
我创建了一个枚举时区显示名称的组合框,效果很好。
ReadOnlyCollection<TimeZoneInfo> systemTimeZones;
systemTimeZones = TimeZoneInfo.GetSystemTimeZones();
cbTimeZone.DataSource = systemTimeZones;
cbTimeZone.BindingContext = new BindingContext();
我正在尝试获取 ComboBox 中所选 DisplayName 时区的 StandardName。我找到了 TimeZoneInfo.Local.StandardName 但这不是我要找的,因为我不关心当前的系统信息。我想为 ComboBox 使用 SelectedIndexChanged 事件以在标签中显示 StandardName。似乎必须有一个简单的方法,我刚刚错过了过去 2 天的阅读。
使用 TimeZoneInfo class 例如
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
foreach (var zone in TimeZoneInfo.GetSystemTimeZones())
{
cbTimeZones.Items.Add(zone.DisplayName);
}
}
private void cbTimeZones_SelectedIndexChanged(object sender, EventArgs e)
{
var zone = TimeZoneInfo.GetSystemTimeZones().Single(x => x.DisplayName == ((ComboBox)sender).SelectedItem.ToString());
lblTimeZone.Text = TimeZoneInfo.FindSystemTimeZoneById(zone.Id).StandardName;
}
}
首先我会说我在 C# 方面经验不足,我正在编写一个 Windows 表单应用程序 写入 XML 文件,PowerShell 稍后可以在配置期间的不同点从中读取元素。
我创建了一个枚举时区显示名称的组合框,效果很好。
ReadOnlyCollection<TimeZoneInfo> systemTimeZones;
systemTimeZones = TimeZoneInfo.GetSystemTimeZones();
cbTimeZone.DataSource = systemTimeZones;
cbTimeZone.BindingContext = new BindingContext();
我正在尝试获取 ComboBox 中所选 DisplayName 时区的 StandardName。我找到了 TimeZoneInfo.Local.StandardName 但这不是我要找的,因为我不关心当前的系统信息。我想为 ComboBox 使用 SelectedIndexChanged 事件以在标签中显示 StandardName。似乎必须有一个简单的方法,我刚刚错过了过去 2 天的阅读。
使用 TimeZoneInfo class 例如
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
foreach (var zone in TimeZoneInfo.GetSystemTimeZones())
{
cbTimeZones.Items.Add(zone.DisplayName);
}
}
private void cbTimeZones_SelectedIndexChanged(object sender, EventArgs e)
{
var zone = TimeZoneInfo.GetSystemTimeZones().Single(x => x.DisplayName == ((ComboBox)sender).SelectedItem.ToString());
lblTimeZone.Text = TimeZoneInfo.FindSystemTimeZoneById(zone.Id).StandardName;
}
}