如何使用 nodatime 验证 IANA 字符串?

Diz*_*zle 4 c# nodatime

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

Mat*_*int 6

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)