Document IANA time zone support on Windows in FindSystemTimeZoneById
Summary
- Added documentation noting that Windows systems support IANA time zone identifiers starting with .NET 6
- Clarified that
FindSystemTimeZoneByIdprovides cross-platform time zone resolution - Included examples of IANA identifiers like "America/Los_Angeles" and "Pacific/Auckland"
Details
The FindSystemTimeZoneById method documentation previously only mentioned that Windows systems use registry
lookups while Linux and macOS use the ICU Library. This could mislead developers into thinking IANA time zone
identifiers (like "Pacific/Auckland") only work on non-Windows platforms.
What Changed
Updated the Remarks section to clarify:
On Windows systems,
FindSystemTimeZoneByIdtries to matchidto the subkey names of the HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Time Zones branch of the registry. Starting with .NET 6, Windows systems also support IANA time zone identifiers (such as "America/Los_Angeles" or "Pacific/Auckland"), providing cross-platform time zone resolution. On Linux and macOS, it uses time zone information available in the ICU Library.
Why This Matters
This enhancement in .NET 6 allows developers to:
- Use consistent time zone identifiers across all platforms
- Write truly cross-platform code without platform-specific time zone handling
- Leverage the more widely-used IANA time zone database on Windows
Without this documentation update, developers might unnecessarily write platform-specific code or miss out on this cross-platform capability.
Fixes #10713