I store the value DST=1 or 0 with my historical collection data in a double. I then compare the Current DST with the recorded DST value to determine if I need to add or subtract 3600 from the data before converting it back to a time/date string.
I realize this is not exactly what you are talking about but wonder if you could do the same with the time zone. Then with the combination of the DST value and the Time zone differences you could determine on first read what adjustments are needed. Hope this might help you. Randall T.