Wednesday, March 11, 2009

Why My Java Program Shows Wrong Timestamp?

It may due to you set up time zone wrongly if you are in Solaris or Unix machine. For the below example, if you use GMT[+/-] format instead of City or a valid timzone name, you will got wrong timestamp. Refer to my previous post about how to set TZ correctly.


fwsst36 scadm$ echo $TZ;date;date -u;java DateUtils
CST6CDT
Tue Mar 10 03:53:35 CDT 2009
Tue Mar 10 08:53:35 GMT 2009
Tue Mar 10 03:53:35 CDT 2009


fwsst36 scadm$ echo $TZ;date;date -u;java DateUtils
Asia/Jakarta
Tue Mar 10 15:54:05 WIT 2009
Tue Mar 10 08:54:05 GMT 2009
Tue Mar 10 15:54:05 WIT 2009


fwsst36 scadm$ echo $TZ;date;date -u;java DateUtils
GMT-7
Tue Mar 10 15:54:26 GMT 2009
Tue Mar 10 08:54:26 GMT 2009
Tue Mar 10 01:54:26 GMT-07:00 2009
(This is wrong)