本文主要是介绍java获取系统时间小时数加1在Centos7与Windows运行结果的差异,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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。
这篇关于java获取系统时间小时数加1在Centos7与Windows运行结果的差异的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!