CB-11154 (Windows) Return IANA timezone as an empty string instead of undefined
diff --git a/README.md b/README.md
index d298789..36fdf44 100644
--- a/README.md
+++ b/README.md
@@ -500,6 +500,8 @@
- The `timezone` returns the full time zone name.
+- The `iana_timezone` property is not supported, and always returns empty string.
+
- The `dst_offset` property is not supported, and always returns zero.
- The pattern may be not completely aligned with ICU depending on a user locale.
diff --git a/src/windows/GlobalizationProxy.winmd b/src/windows/GlobalizationProxy.winmd
index bf61069..92925b3 100644
--- a/src/windows/GlobalizationProxy.winmd
+++ b/src/windows/GlobalizationProxy.winmd
Binary files differ
diff --git a/src/windows/GlobalizationProxy/GlobalizationProxy/Globalization/GlobalizationApiTypes.cs b/src/windows/GlobalizationProxy/GlobalizationProxy/Globalization/GlobalizationApiTypes.cs
index 5641b21..9a27351 100644
--- a/src/windows/GlobalizationProxy/GlobalizationProxy/Globalization/GlobalizationApiTypes.cs
+++ b/src/windows/GlobalizationProxy/GlobalizationProxy/Globalization/GlobalizationApiTypes.cs
@@ -395,6 +395,12 @@
public string TimeZone { get; set; }
/// <summary>
+ /// IANA TimeZone
+ /// </summary>
+ [DataMember(Name = "iana_timezone", IsRequired = false)]
+ public string IanaTimeZone { get; set; }
+
+ /// <summary>
/// UTC offset
/// </summary>
[DataMember(Name = "utc_offset", IsRequired = false)]
@@ -411,12 +417,14 @@
/// </summary>
/// <param name="pattern"></param>
/// <param name="timezone"></param>
+ /// <param name="ianaTimezone"></param>
/// <param name="utcOffset"></param>
/// <param name="dstOffset"></param>
- public DatePattern(string pattern, string timezone, double utcOffset, double dstOffset)
+ public DatePattern(string pattern, string timezone, string ianaTimezone, double utcOffset, double dstOffset)
{
this.Pattern = pattern;
this.TimeZone = timezone;
+ this.IanaTimeZone = ianaTimezone;
this.UtcOffset = utcOffset;
this.DstOffset = dstOffset;
}
diff --git a/src/windows/GlobalizationProxy/GlobalizationProxy/Globalization/GlobalizationImpl.cs b/src/windows/GlobalizationProxy/GlobalizationProxy/Globalization/GlobalizationImpl.cs
index 7e2b772..fd5d227 100644
--- a/src/windows/GlobalizationProxy/GlobalizationProxy/Globalization/GlobalizationImpl.cs
+++ b/src/windows/GlobalizationProxy/GlobalizationProxy/Globalization/GlobalizationImpl.cs
@@ -349,7 +349,7 @@
}
TimeZoneInfo localZone = TimeZoneInfo.Local;
- return new DatePattern(pattern, localZone.DisplayName, localZone.BaseUtcOffset.TotalSeconds, 0);
+ return new DatePattern(pattern, localZone.DisplayName, String.Empty, localZone.BaseUtcOffset.TotalSeconds, 0);
}
/// <summary>
diff --git a/tests/tests.js b/tests/tests.js
index 010fc74..30e8398 100644
--- a/tests/tests.js
+++ b/tests/tests.js
@@ -263,9 +263,12 @@
expect(a.timezone.length > 0).toBe(true);
}
if (!isBrowser && !isWindowsPhone) {
- expect(a.iana_timezone).toBeDefined();
- expect(typeof a.iana_timezone).toBe('string');
- expect(a.iana_timezone.length > 0).toBe(true);
+ expect(a.iana_timezone).toBeDefined();
+ expect(typeof a.iana_timezone).toBe('string');
+ // Windows doesn't support IANA timezone and always returns an empty string instead
+ if (!isWindows) {
+ expect(a.iana_timezone.length > 0).toBe(true);
+ }
}
expect(a.utc_offset).toBeDefined();
expect(typeof a.utc_offset).toBe('number');