Oracle supports storing timezone with dates.
http://docs.oracle.com/cd/B14117_01/server.101/b10759/functions179.htm
Using the portability defense really isn't a good idea... each DB server is different enough, that queries that can run on all of them, likely run poorly on all of them.