Holy cow, I wrote a book!
Public Service Announcement:
Daylight Saving Time ends in most parts of the United States
I pointed out
some time ago
that Win32 and .NET deal with daylight saving time differently.
Specifically, Win32 always deals with the time zone you are currently in
(even if it's not the time zone that corresponds to the timestamp
you are manipulating),
whereas .NET deals with the time zone that was in effect at the time
the timestamp was generated.
For more details on the latter, I refer you to
Josh Free from
the BCL Team Blog,
who some time ago
how to work with ambiguous and invalid points in time
in managed code.