如果拥有DataLoader
,我们如何获取所选时区的国家/地区名称。
示例:
TimeZoneInfo
谢谢
答案 0 :(得分:1)
我认为没有内置的方法可以做到这一点。 TimeZoneInfo类没有返回国家代码的属性或方法。参见:https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo?view=netframework-4.7.2
TimeZoneInfo的行为还取决于其运行的操作系统。见下文:
在Windows 10的NET Core 2.1上运行以下代码:
TimeZoneInfo localZone = TimeZoneInfo.Local;
Console.WriteLine("Local Time Zone ID: {0}", localZone.Id);
Console.WriteLine(" Display Name is: {0}.", localZone.DisplayName);
Console.WriteLine(" Standard name is: {0}.", localZone.StandardName);
Console.WriteLine(" Daylight saving name is: {0}.", localZone.DaylightName);
给出输出:
Local Time Zone ID: Central Europe Standard Time
Display Name is: (UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague.
Standard name is: Central Europe Standard Time.
Daylight saving name is: Central Europe Summer Time.
在macOS High Sierra上运行相同的代码NET Core 2.1:
Local Time Zone ID: Europe/Budapest
Display Name is: GMT+01:00.
Standard name is: GMT+01:00.
Daylight saving name is: GMT+02:00.
您可以实现的最接近的近似值是:
下载tz数据库的最新副本。您可以使用https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
下载国家/地区代码的副本。维基百科有一个列表:https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
按TZ名称(例如“欧洲/布达佩斯”)搜索TZ数据库的实现代码。这给您一个国家代码。然后使用两个字母的国家/地区代码搜索国家/地区数据库,这将为您提供一个国家/地区名称。
此方法不能跨平台!当国家/地区代码列表的tz数据库发生更改时,必须更新您的应用程序。