Well, I built a test project that pulls in both four separate implementations:
1) ZoneInfo with tzdata 2011n and patched with the 10855 patch to handle the new tokens.
2) ZoneInfo with tzdata 2011n, patched with 10855 AND 9207 for the DST fixes
3) TZ4NET with tzdata 2011n as is.
4) Microsoft TimeZoneInfo from .Net 4.0 with latest windows updates. Using the CLDR conversion chart (http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/zone_tzid.html)
with a few minor updates.
I then loop through all time zones and loop again for all dates from 1/1/2011 through 1/1/2021 (I care more about future dates than past for my implementation). I'm just comparing at midnight for ease of testing, which I understand could miss some
items, but should still be fairly accurate.
I have performed all permutations of the four implementations through the same loops and every result is different, but they ALL fail. I can certainly tell that any comparison to Microsoft's time zones are off probably due to Microsoft not keeping
current. Just focusing on the three tzdata implementations, they all use the same source data so they should all be identical except for bugs. And if I am to belive that the 9207 patch for ZoneInfo is to fix all DST issues, then why do I get a
large amount of mismatches when comparing against TZ4NET? The list of timezones that fail the tests is long.
I am developing a product that will be sold worldwide and direcly involves timekeeping and crossing timezones. We're storing all time in UTC, and displaying/reporting on it in the user's local timzone. So it's very important that we have a stable
and accurate timezone conversion library so we show the correct information.