1、获取系统时间小时数加1的工具类:
public class GetHourAddOne {
public static String getHour(){
Calendar calendar=Calendar.getInstance();
Date nowTime=calendar.getTime();
//原来小时数:
//String hh = new SimpleDateFormat("HH").format(nowTime);
//System.out.println(hh);
calendar.add(Calendar.HOUR, 1); //减填负数
nowTime=calendar.getTime();
String hour = new SimpleDateFormat("HH").format(nowTime);
return hour;
}
}
2、在windows平台和linux平台运行结果的差异:
2.1 在windows平台的运行结果:
由图在windows平台上能正常得到系统时间小时数加1
2.2在linux(centos7)平台上的运行结果
由图知,虽然linux系统时间是0点,但调用时间小时数加1之后得到的是12点,并没有得到我们想要的时间数为1的效果。
3、自己的初步调整策略:
linux系统时间的小时数为0,但是调用小时数加1之后得到的12,并没有得到加1显示为1的结果,说明程序调用的时间是拿系统时间为11去加1得到的结果,而不是拿0+1去得到的结果,为了得到我们想要的在Linux系统时间的小时数为0时显示为1的效果,可以更改获取时间工具类,把原来的加1改为减10就是我们想要的结果了。
3.1 、获取时间工具类的更改:
public class GetHourAddOne {
public static String getHour(){
Calendar calendar=Calendar.getInstance();
Date nowTime=calendar.getTime();
//原来小时数:
//String hh = new SimpleDateFormat("HH").format(nowTime);
//System.out.println(hh);
calendar.add(Calendar.HOUR, -10); //减填-,但是Linux下不OK,填入-10测试一下
nowTime=calendar.getTime();
String hour = new SimpleDateFormat("HH").format(nowTime);
return hour;
}
}
3.2 、更改之后实现的效果:
由图知,能实现需要的结果
4、还未解决的疑惑点:
尚未明确为何调用系统时间的小时数加1时,windows与linux的启动初始时间值想差了11。