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

时间:2015-10-17 19:43:15

标签: c# nodatime

var easternTimeZone = DateTimeZoneProviders.Tzdb[timeZoneIdentifier];

使用NodaTime,当字符串timeZoneIdentifier设置为有效的IANA字符串时,我应该如何验证,例如" Europe / Stockholm"它被视为有效,但不受支持的IANA字符串被拒绝。

https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

1 个答案:

答案 0 :(得分:3)

DateTimeZone tz = DateTimeZoneProviders.Tzdb.GetZoneOrNull(timeZoneIdentifier);
bool valid = tz != null;

或者,作为扩展方法:

public static bool IsValidTimeZone(this IDateTimeZoneProvider provider, string timeZoneId)
{
    return provider.GetZoneOrNull(timeZoneId) != null;
}