静态方法:
因为获取的是UTC时间,需要转成北京时间:
public static Date getLocaleDate(Date date,
int originalTimeZone,int localeTimeZone){
Long newTime = date.getTime();
newTime+=(localeTimeZone-originalTimeZone)*60*60*1000;
Date newDate = new Date(newTime);
return newDate;
}
调用:
vo.setCreateByTime(
TimeUtils.getLocaleDate(vo.getCreateByTime(), 0, 8));//加了8小时
vo.setLastModifyTime(
TimeUtils.getLocaleDate(vo.getCreateByTime(), 0, 8));//怎么又加了8小时?
//此处打印时间与下面打印的相同
Date newdate =TimeUtils.getLocaleDate(vo.getCreateByTime(), 0, 8);
System.out.println(TimeUtils.getLocaleDate(vo.getCreateByTime(), 0, 8));
问题:发现每调用一次静态方法,结果值是叠加的,比如:最开始时间部分为1:00:00,调用一次后为9:00:00,(理所当然),可再调用一次,参数不变(可以保证,也打印结果验证了),但结果却变为17:00。
谁能给我解释下?