前提
很简单 就是一个倒计时 我像以往的操作一样 从接口中拿到数据使用项目中早已封装好的Datautil工具类转换成HH小时mm分ss秒 运行跑起来看发现本来应该是2小时倒计时 现在变成了10小时倒计时 我就开始找是接口数据的问题还是我的问题 然后开始挨个打印 发现数据都是对的 就是在运行的时候 多了8个小时 然后开始在网上寻找原因 。
原因
因为我们在的时区是东八区 与0时区的时间差相差8小时 所以运行时就会出现多8小时
解决方法
添加这一行代码 变成0时区
SimpleDateFormat sim = new SimpleDateFormat("HH小时mm分ss秒");
//因为东八区 sim编译后的时间多8小时 加这一行代码 变成0时区
sim.setTimeZone(TimeZone.getTimeZone("GMT+0"));
因为我一开始是用的公司封装号的工具类 所以无法转换成0时区 所以放弃公司的工具类 使用SimpleDateFormat 然后就可以使用啦
sim.format(millisUntilFinished)