时间设置和file.lastModified()的奇怪问题

zhlwwj1314 2011-12-27 04:28:33
1.在系统原生的设置app里,把时间向未来调整
2.在自己写的文件管理app里,在sd卡上新建文件
3.查看file.lastModified()是正确的
4.adb reboot
5.再查看file.lastModified()比正确的时间多了8小时
注:日志发现自始至终时区都是东八,时间向过去调整不会发生这样的情况,很费解啊,没什么手段定位,哪位前辈指点一二。创建文件的方法创建:final File file = new File(filePath);
...全文
899 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
gusui 2013-10-28
  • 打赏
  • 举报
回复
请问兄弟你这个问题解决了吗?我们也遇到你这个问题~
zoulu1 2012-05-16
  • 打赏
  • 举报
回复
贴代码
安卓机器人 2011-12-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhlwwj1314 的回复:]

引用 3 楼 ncuboy045wsq 的回复:

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

修改时间前查看时区,就是东八区。重启后再看时区,还是东八区。
[/Quote]
你可以在设置里改变时区
zhlwwj1314 2011-12-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ncuboy045wsq 的回复:]

很正常,因为我们是东八区,然后是系统的时间是GMT时间,也就是格林威治时间
然后新建文件是java调用默认时区编辑最后的时间,而我们是北京时间,东八区
[/Quote]
修改时间前查看时区,就是东八区。重启后再看时区,还是东八区。
zhlwwj1314 2011-12-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yipiao729 的回复:]
没有看明白,你用实例说明这个问题,大家或许更快能够想到问题根源上
[/Quote]
小弟弟你好,看不懂一定是小弟弟了,看不懂可以问哥哥,哥哥给你解答!谢谢!
zhlwwj1314 2011-12-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 ncuboy045wsq 的回复:]
这只是个小问题,你不用太纠结,这跟你的项目需求有什么冲突了,如果没有,下次你只要使用正确的时区即可,其实你不用管时区,一般都是用默认时区来显示时间
[/Quote]
不纠结我就不会来这问了。虽然这是小问题,但是测试提了个单在我名下挂着,解决不解决的了领导都能看到,对我还是很重要的。大哥,不要扯时区了,时区一直都是正确的:
[Quote=引用楼主 zhlwwj1314 的回复:]
注:日志发现自始至终时区都是东八
[/Quote]
file.lastModified()得到的时间戳重启前和重启后就差28800000毫秒也就是8小时。你到底知不知道这个问题的原因。
安卓机器人 2011-12-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zhlwwj1314 的回复:]

引用 3 楼 ncuboy045wsq 的回复:

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

当前时区已经是东八区了,为什么java还调默认时区编辑最后时间呢?虚拟机能拿到当前时区还用默认时区,说不过去啊?!
[/Quote]
这只是个小问题,你不用太纠结,这跟你的项目需求有什么冲突了,如果没有,下次你只要使用正确的时区即可,其实你不用管时区,一般都是用默认时区来显示时间
_DaHuiLang_ 2011-12-29
  • 打赏
  • 举报
回复
没有看明白,你用实例说明这个问题,大家或许更快能够想到问题根源上
zhlwwj1314 2011-12-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ncuboy045wsq 的回复:]

很正常,因为我们是东八区,然后是系统的时间是GMT时间,也就是格林威治时间
然后新建文件是java调用默认时区编辑最后的时间,而我们是北京时间,东八区
[/Quote]
当前时区已经是东八区了,为什么java还调默认时区编辑最后时间呢?虚拟机能拿到当前时区还用默认时区,说不过去啊?!
zhlwwj1314 2011-12-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ncuboy045wsq 的回复:]

引用 4 楼 zhlwwj1314 的回复:

引用 3 楼 ncuboy045wsq 的回复:

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

修改时间前查看时区,就是东八区。重启后再看时区,还是东八区。

你可以在设置里改变时区
[/Quote]
我的问题是前后时区都没有变,为什么向未来修改时间后,再新建文件,重启后,文件的lastModified就多了8小时?
修改时间前新建的文件没有这个问题,
向过去修改时间后新建的问题没有这个问题。
安卓机器人 2011-12-28
  • 打赏
  • 举报
回复
很正常,因为我们是东八区,然后是系统的时间是GMT时间,也就是格林威治时间
然后新建文件是java调用默认时区编辑最后的时间,而我们是北京时间,东八区
zhlwwj1314 2011-12-28
  • 打赏
  • 举报
回复
自己顶啊

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧