java程序中的时间与服务器上的时间

java代码里如果想要获取当前系统时间,通常会用下面方式
public static Date getNow() {
       return new Date(System.currentTimeMillis());
}
在本地测试得到的是你预计的北京当地时间,不会有问题,因为你本机一般也是GMT+8,东八区。但是部署到服务器上就有可能会有问题了,服务器有可能不是设置的GMT+8,东八区,一般都是GMT+0时区,所以按上述方法得到的时间是GMT+0时区的时间,例如你通过date命令看到的是2016-01-21 10:00:00,程序里返回的确实2016-01-21 02:00:00,如果想获得2016-01-21 10:00:00,你需要在程序里设置时区,如下:
public static Date getNow() {
    	TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
        return new Date(System.currentTimeMillis());
}

你可能感兴趣的:(javase)