1.在系统原生的设置app里,把时间向未来调整
2.在自己写的文件管理app里,在sd卡上新建文件
3.查看file.lastModified()是正确的
4.adb reboot
5.再查看file.lastModified()比正确的时间多了8小时
注:日志发现自始至终时区都是东八,时间向过去调整不会发生这样的情况,很费解啊,没什么手段定位,哪位前辈指点一二。创建文件的方法创建:final File file = new File(filePath);

解决方案 »

  1.   

    很正常,因为我们是东八区,然后是系统的时间是GMT时间,也就是格林威治时间
    然后新建文件是java调用默认时区编辑最后的时间,而我们是北京时间,东八区
      

  2.   

    我的问题是前后时区都没有变,为什么向未来修改时间后,再新建文件,重启后,文件的lastModified就多了8小时?
    修改时间前新建的文件没有这个问题,
    向过去修改时间后新建的问题没有这个问题。
      

  3.   

    当前时区已经是东八区了,为什么java还调默认时区编辑最后时间呢?虚拟机能拿到当前时区还用默认时区,说不过去啊?!
      

  4.   

    不纠结我就不会来这问了。虽然这是小问题,但是测试提了个单在我名下挂着,解决不解决的了领导都能看到,对我还是很重要的。大哥,不要扯时区了,时区一直都是正确的:
    file.lastModified()得到的时间戳重启前和重启后就差28800000毫秒也就是8小时。你到底知不知道这个问题的原因。