This is what I wrote and use.. you need the VB6 runtimes for it to work. I'm sure someone has a smaller/better version written in C somewhere.
However, it won't change your windows timezones for you; sorry. It keeps your clock on the correct GMT, and windows displays what the time should be based on the timezone set during setup. I think it'd be tricky to know what location is in what time zone.