I work on a Calendar product and I can assure you that working with dates, times, and timezones is a complex endeavor.<p>We just fixed a bug in a legacy part of the application where timezones were converted properly when accepting an event from an ICS file but on export through our CalDav server, certain timezones (ones unknown by name to the OS) weren't converted properly so we were providing the wrong start time to the event. It's too bad Microsoft uses different names for timezones than basically everyone else.
Yeah dealing with dates behind the API is a whole other level of crazy-making. Flawed implementations of zoneinfo are another frustration (I've spent lots of time in .NET so I'm aware of what you refer to).