一直常用的格式话时间的代码,如今确不符人意了,郁闷至极
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = sd.format(new Date());
我想这段代码应该很简单,而且应该很多人也这样使用!但是这样是有隐患的,已经发生在我身上,当然这里谈论的不涉及跨越多个时区的处理.我把上面代码改成如下才可以
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sd.setTimeZone(TimeZone.getTimeZone("GMT+8"));
String strDate = sd.format(new Date());
说明时区设置有问题,但为什么会这样那,而其在各别的机器上可以,而有的机器上确不行那。可参考该文
http://dev.csdn.net/article/22/22269.shtm
看过该文之后,还有些不明白,为什么别人的可以那?我们的java环境配置都一样,也希望看到此文的人告知
在此提供几个方法,确认自己的
TimeZone.getDefault()
System.getProperty("user.timezone")
这样可以知道自己系统的时区情况了