var easternTimeZone = DateTimeZoneProviders.Tzdb[timeZoneIdentifier];
Run Code Online (Sandbox Code Playgroud)
使用 NodaTime 我应该如何验证当字符串 timeZoneIdentifier 设置为有效的 IANA 字符串(如“Europe/Stockholm”)时,它被视为有效但不支持的 IANA 字符串被拒绝。
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
DateTimeZone tz = DateTimeZoneProviders.Tzdb.GetZoneOrNull(timeZoneIdentifier);
bool valid = tz != null;
Run Code Online (Sandbox Code Playgroud)
或者,作为扩展方法:
public static bool IsValidTimeZone(this IDateTimeZoneProvider provider, string timeZoneId)
{
return provider.GetZoneOrNull(timeZoneId) != null;
}
Run Code Online (Sandbox Code Playgroud)