Linux distributions will do this automatically if the following conditions are met:
1) The hardware clock must be set for GMT.
2) You must use a server-style distribution that either presumes this, or asks you specifically.
3) You must have set your correct time-zone specifically when you installed your OS, or you must run whatever program your distribution gives you to change it, to make sure it's set correctly. If all else fails you may manually copy or link the correct file from (in most cases /usr/share/zoneinfo to /etc/localtime.
4) You must have the latest zoneinfo files installed on your server; you should get updates the same way you update other packages on your server.
I have no idea how it's done with BSD or other Unix variants.
Jeff