You'd want a database of zip codes and the associated time zones. There are some out there on the internet if you search, although zip codes actually change a lot - the US Post office administers zip codes and makes changes every month, so you'll have to make sure your database is up to date. Also, there are so many zip codes and so many exceptions to time zone rules (DST, half hour differences, local changes, etc.) that you'll never get perfect accuracy. You might get the right time zone/ offset from GMT in 9 out of 10 cases, though, maybe even more.
Once you have a database of zip codes and time zones, you'll probably want to put it in its own table in your database. You can then write an activity that will take the zip code as input and query the database for the associated time zone.