I want to use the TimeZoneInfo.FindSystemTimeZoneById(String) method, but I don\'t know what values to use as the input?
Where can I get a list of values for i
To get the most current list of time zones, use tzutil from Windows:
tzutil /l
Here you can find the official Time Zone Ids list from Microsoft in MSDN: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones
ID | Time zone name ----------|------------------------ 0 | Dateline Standard Time 110 | UTC-11 200 | Hawaiian Standard Time 300 | Alaskan Standard Time 400 | Pacific Standard Time 410 | Pacific Standard Time (Mexico) 500 | Mountain Standard Time 510 | Mountain Standard Time (Mexico) 520 | US Mountain Standard Time 600 | Canada Central Standard Time 610 | Central America Standard Time 620 | Central Standard Time 630 | Central Standard Time (Mexico) 700 | Eastern Standard Time 710 | SA Pacific Standard Time 720 | US Eastern Standard Time 840 | Venezuela Standard Time 800 | Atlantic Standard Time 810 | Central Brazilian Standard Time 820 | Pacific SA Standard Time 830 | SA Western Standard Time 850 | Paraguay Standard Time 900 | Newfoundland Standard Time 910 | E. South America Standard Time 920 | Greenland Standard Time 930 | Montevideo Standard Time 940 | SA Eastern Standard Time 950 | Argentina Standard Time 1000 | Mid-Atlantic Standard Time 1010 | UTC-2 1100 | Azores Standard Time 1110 | Cabo Verde Standard Time 1200 | GMT Standard Time 1210 | Greenwich Standard Time 1220 | Morocco Standard Time 1230 | UTC 1300 | Central Europe Standard Time 1310 | Central European Standard Time 1320 | Romance Standard Time 1330 | W. Central Africa Standard Time 1340 | W. Europe Standard Time 1350 | Namibia Standard Time 1400 | E. Europe Standard Time 1410 | Egypt Standard Time 1420 | FLE Standard Time 1430 | GTB Standard Time 1440 | Israel Standard Time 1450 | Jordan Standard Time 1460 | Middle East Standard Time 1470 | South Africa Standard Time 1480 | Syria Standard Time 1490 | Turkey Standard Time 1500 | Arab Standard Time 1510 | Arabic Standard Time 1520 | E. Africa Standard Time 1530 | Kaliningrad Standard Time 1550 | Iran Standard Time 1540 | Russian Standard Time 1600 | Arabian Standard Time 1610 | Azerbaijan Standard Time 1620 | Caucasus Standard Time 1640 | Georgian Standard Time 1650 | Mauritius Standard Time 1630 | Afghanistan Standard Time 1710 | West Asia Standard Time 1750 | Pakistan Standard Time 1720 | India Standard Time 1730 | Sri Lanka Standard Time 1740 | Nepal Standard Time 1700 | Ekaterinburg Standard Time 1800 | Central Asia Standard Time 1830 | Bangladesh Standard Time 1820 | Myanmar Standard Time 1810 | N. Central Asia Standard Time 1910 | SE Asia Standard Time 1900 | North Asia Standard Time 2000 | China Standard Time 2020 | Singapore Standard Time 2030 | Taipei Standard Time 2040 | W. Australia Standard Time 2050 | Ulaanbaatar Standard Time 2010 | North Asia East Standard Time 2100 | Korea Standard Time 2110 | Tokyo Standard Time 2130 | AUS Central Standard Time 2140 | Cen. Australia Standard Time 2120 | Yakutsk Standard Time 2200 | AUS Eastern Standard Time 2210 | E. Australia Standard Time 2220 | Tasmania Standard Time 2240 | West Pacific Standard Time 2230 | Vladivostok Standard Time 2300 | Central Pacific Standard Time 2310 | Magadan Standard Time 2400 | Fiji Standard Time 2410 | New Zealand Standard Time 2430 | UTC+12 2500 | Tonga Standard Time 2510 | Samoa Standard Time
You can fetch them from a static list in the TimeZoneInfo
class
var infos = TimeZoneInfo.GetSystemTimeZones();
foreach (var info in infos)
{
Console.WriteLine(info.Id);
}
Example:
var tzInfo = TimeZoneInfo.FindSystemTimeZoneById("New Zealand Standard Time");
Or if you just want a list of the timezone id's like DJ KRAZE suggested
var timeZoneIds = TimeZoneInfo.GetSystemTimeZones().Select(t => t.Id);
Or you can pass the TimeZoneInfo.Local.Id
like this:
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById(TimeZoneInfo.Local.Id);
DateTime localDateTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, tzi);
Have a look at the static method on TimeZoneInfo
called TimeZoneInfo.GetSystemTimeZones() method.
This will return a list of all TimeZoneInfo
's on your operating system from the Registry. They are all stored under: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
.
An example is "GMT Standard Time" for the "Dublin, Edinburgh, Lisbon, London" time zone.
Here is the list in Windows 8 (I extracted from Windows Registry)
Afghanistan Standard Time Alaskan Standard Time Alaskan Standard Time\Dynamic DST Arab Standard Time Arabian Standard Time Arabic Standard Time Arabic Standard Time\Dynamic DST Argentina Standard Time Argentina Standard Time\Dynamic DST Atlantic Standard Time Atlantic Standard Time\Dynamic DST AUS Central Standard Time AUS Eastern Standard Time AUS Eastern Standard Time\Dynamic DST Azerbaijan Standard Time Azores Standard Time Azores Standard Time\Dynamic DST Bahia Standard Time Bahia Standard Time\Dynamic DST Bangladesh Standard Time Bangladesh Standard Time\Dynamic DST Canada Central Standard Time Cape Verde Standard Time Caucasus Standard Time Caucasus Standard Time\Dynamic DST Cen. Australia Standard Time Cen. Australia Standard Time\Dynamic DST Central America Standard Time Central Asia Standard Time Central Brazilian Standard Time Central Brazilian Standard Time\Dynamic DST Central Europe Standard Time Central European Standard Time Central Pacific Standard Time Central Standard Time Central Standard Time\Dynamic DST Central Standard Time (Mexico) China Standard Time Dateline Standard Time E. Africa Standard Time E. Australia Standard Time E. Europe Standard Time E. South America Standard Time E. South America Standard Time\Dynamic DST Eastern Standard Time Eastern Standard Time\Dynamic DST Egypt Standard Time Egypt Standard Time\Dynamic DST Ekaterinburg Standard Time Ekaterinburg Standard Time\Dynamic DST Fiji Standard Time Fiji Standard Time\Dynamic DST FLE Standard Time Georgian Standard Time GMT Standard Time Greenland Standard Time Greenland Standard Time\Dynamic DST Greenwich Standard Time GTB Standard Time Hawaiian Standard Time India Standard Time Iran Standard Time Iran Standard Time\Dynamic DST Israel Standard Time Israel Standard Time\Dynamic DST Jordan Standard Time Jordan Standard Time\Dynamic DST Kaliningrad Standard Time Kaliningrad Standard Time\Dynamic DST Kamchatka Standard Time Korea Standard Time Libya Standard Time Libya Standard Time\Dynamic DST Magadan Standard Time Magadan Standard Time\Dynamic DST Mauritius Standard Time Mauritius Standard Time\Dynamic DST Mid-Atlantic Standard Time Middle East Standard Time Middle East Standard Time\Dynamic DST Montevideo Standard Time Montevideo Standard Time\Dynamic DST Morocco Standard Time Morocco Standard Time\Dynamic DST Mountain Standard Time Mountain Standard Time\Dynamic DST Mountain Standard Time (Mexico) Myanmar Standard Time N. Central Asia Standard Time N. Central Asia Standard Time\Dynamic DST Namibia Standard Time Namibia Standard Time\Dynamic DST Nepal Standard Time New Zealand Standard Time New Zealand Standard Time\Dynamic DST Newfoundland Standard Time Newfoundland Standard Time\Dynamic DST North Asia East Standard Time North Asia East Standard Time\Dynamic DST North Asia Standard Time North Asia Standard Time\Dynamic DST Pacific SA Standard Time Pacific SA Standard Time\Dynamic DST Pacific Standard Time Pacific Standard Time\Dynamic DST Pacific Standard Time (Mexico) Pakistan Standard Time Pakistan Standard Time\Dynamic DST Paraguay Standard Time Paraguay Standard Time\Dynamic DST Romance Standard Time Russian Standard Time Russian Standard Time\Dynamic DST SA Eastern Standard Time SA Pacific Standard Time SA Western Standard Time Samoa Standard Time Samoa Standard Time\Dynamic DST SE Asia Standard Time Singapore Standard Time South Africa Standard Time Sri Lanka Standard Time Syria Standard Time Syria Standard Time\Dynamic DST Taipei Standard Time Tasmania Standard Time Tasmania Standard Time\Dynamic DST Tokyo Standard Time Tonga Standard Time Turkey Standard Time Turkey Standard Time\Dynamic DST Ulaanbaatar Standard Time US Eastern Standard Time US Eastern Standard Time\Dynamic DST US Mountain Standard Time UTC UTC+12 UTC-02 UTC-11 Venezuela Standard Time Venezuela Standard Time\Dynamic DST Vladivostok Standard Time Vladivostok Standard Time\Dynamic DST W. Australia Standard Time W. Australia Standard Time\Dynamic DST W. Central Africa Standard Time W. Europe Standard Time West Asia Standard Time West Pacific Standard Time Yakutsk Standard Time Yakutsk Standard Time\Dynamic DST
The latest Microsoft documentation, with a list of these, can be found at https://support.microsoft.com/en-gb/help/973627/microsoft-time-zone-index-values
The time zone ID strings are currently as follows (if you want to see the actual time difference of see the hex index for each time zone ID then click the above link):
Samoa Standard Time
Alaskan Standard Time
Mountain Standard Time
U.S. Mountain Standard Time
Canada Central Standard Time
Central America Standard Time
U.S. Eastern Standard Time
Atlantic Standard Time
Pacific S.A. Standard Time
E. South America Standard Time
Greenland Standard Time
Azores Standard Time
GMT Standard Time
Central Europe Standard Time
Romance Standard Time
W. Central Africa Standard Time
Egypt Standard Time
GTB Standard Time
South Africa Standard Time
Arab Standard Time
Arabic Standard Time
Arabian Standard Time
Transitional Islamic State of Afghanistan Standard Time
West Asia Standard Time
Nepal Standard Time
Sri Lanka Standard Time
Myanmar Standard Time
North Asia Standard Time
Singapore Standard Time
W. Australia Standard Time
Korea Standard Time
Yakutsk Standard Time
Cen. Australia Standard Time
E. Australia Standard Time
Vladivostok Standard Time
Central Pacific Standard Time
New Zealand Standard Time
Azerbaijan Standard Time
Jordan Standard Time
Mountain Standard Time (Mexico)
Namibia Standard Time
Central Brazilian Standard Time
Armenian Standard Time
Argentina Standard Time
Pakistan Standard Time
UTC
Kamchatka Standard Time