The information needed to create a “long form” of the time zone name is not in Noda Time, but it can be found in CLDR .
I recently put together a library called simply “time zone names” that includes CLDR time zone names. You can use them with IANA Identifiers (TZDB), which are used by Noda Time time zones.
Just pass the time zone and language and it will provide the corresponding common name, standard name and daylight name. You can use Noda Time to decide which form is suitable for display.
var names = TimeZoneNames.GetNamesForTimeZone("America/Los_Angeles", "en-US"); Assert.Equal("Pacific Time", names.Generic); Assert.Equal("Pacific Standard Time", names.Standard); Assert.Equal("Pacific Daylight Time", names.Daylight);
For a language, you can either pass a two-digit code, for example, "en" , or you can pass a fully regional version, for example, "en-US" . This matches the CultureInfo names, so you can pass CultureInfo.CurrentUICulture.Name if you want.
source share