timeZone._standardDisplayName,
timeZone._daylightDisplayName,
timeZone._adjustmentRules,
- disableDaylightSavingTime: false);
+ disableDaylightSavingTime: false,
+ timeZone.HasIanaId);
_localTimeZone = timeZone;
}
else
{
value = new TimeZoneInfo(match!._id, match._baseUtcOffset, match._displayName, match._standardDisplayName,
- match._daylightDisplayName, match._adjustmentRules, disableDaylightSavingTime: false);
+ match._daylightDisplayName, match._adjustmentRules, disableDaylightSavingTime: false, match.HasIanaId);
}
}
else
}
public static bool SupportIanaNamesConversion => PlatformDetection.IsNotBrowser && PlatformDetection.ICUVersion.Major >= 52;
+ public static bool SupportIanaNamesConversionAndRemoteExecution => SupportIanaNamesConversion && RemoteExecutor.IsSupported;
+
+ // This test is executed using the remote execution because it needs to run before creating the time zone cache to ensure testing with that state.
+ // There are already other tests that test after creating the cache.
+ [ConditionalFact(nameof(SupportIanaNamesConversionAndRemoteExecution))]
+ public static void IsIanaIdWithNotCacheTest()
+ {
+ RemoteExecutor.Invoke(() =>
+ {
+ Assert.Equal(!s_isWindows || TimeZoneInfo.Local.Id.Equals("Utc", StringComparison.OrdinalIgnoreCase), TimeZoneInfo.Local.HasIanaId);
+
+ TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time");
+ Assert.False(tzi.HasIanaId);
+
+ tzi = TimeZoneInfo.FindSystemTimeZoneById("Europe/Berlin");
+ Assert.True(tzi.HasIanaId);
+ }).Dispose();
+ }
[ConditionalFact(nameof(SupportIanaNamesConversion))]
[ActiveIssue("https://github.com/dotnet/runtime/issues/52072", TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.MacCatalyst)]
{
bool expected = !s_isWindows;
+ Assert.Equal((expected || TimeZoneInfo.Local.Id.Equals("Utc", StringComparison.OrdinalIgnoreCase)), TimeZoneInfo.Local.HasIanaId);
+
foreach (TimeZoneInfo tzi in TimeZoneInfo.GetSystemTimeZones())
{
Assert.True((expected || tzi.Id.Equals("Utc", StringComparison.OrdinalIgnoreCase)) == tzi.HasIanaId, $"`{tzi.Id}` has wrong IANA Id indicator");