这个是朋友遇到的bug,后台返回一条long型数据,要转成 hh:mm:ss的格式,数据转换后正确数据大概在1:29:00上下浮动,可是他转出来的是9:29:00浮动,比想象中的正确时间多了9个小时。(后来我去百度,确实没百度到这方面的资料,也许是输入的方式不正确);
其实敏感的人都会隐约意识到,这多的8个小时有种似曾相识的感觉(北京的时区是东八区,世界大事记用的都是中时区时间,说白了,就是大家都知道得格林威治时间,那个城市有个地方就在本初子午线上。东八区比他要早8个小时,也就是说那里0时,北京时间已经太阳升起了);
知道了原理再去处理就简单多了,我们只要设置下这个代码,格式化就准确了
SimpleDateFormat sdf=new SimpleDateFormat("hh:mm:ss", Locale.getDefault());
sdf.setTimeZone(TimeZone.getTimeZone("GMT+0"));
sdf.setTimeZone(TimeZone.getTimeZone(“GMT+0”));是重点。