I just found this old question unanswered, so I thought I should strike him.
In short - is this approach valid / safe?
It all depends on what you plan to do with them.
If you just use it in server code, then yes. You just save the Idtime zone and show the user the appropriate one DisplayName. FindSystemTimeZoneByIdand are GetSystemTimeZonesquite applicable for this.
, , Id - DisplayName Windows, . , .Net DisplayName.
Microsoft Windows Windows Update. , tzres.dll. , TimeZoneInfo .
, Id - . Windows. , , , , "GMT" , "UTC". Id , , . , Windows, . - .
Windows:
DST . , 2010 . Microsoft , , . , , .
Windows XP/2003 Vista/2008. , , .
Microsoft . IANA/Olson. . wiki.
, TimeZoneInfo DateTime DateTimeOffset. . DateTimeOffset , DateTime . :
.Net NodaTime. , CLDR . API, . , , , LocalDateTime, ZonedDateTime, OffsetDateTime Instant.
, , . TZDB / . tz .
, NodaTime, TZDB, , . () , IANA - , .