var easternTimeZone = DateTimeZoneProviders.Tzdb[timeZoneIdentifier];
使用NodaTime,当字符串timeZoneIdentifier设置为有效的IANA字符串时,我应该如何验证,例如" Europe / Stockholm"它被视为有效,但不受支持的IANA字符串被拒绝。
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
答案 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;
}