我正在用这样的文件做一些测试:
public Date findFileDate(){
File file = new File(filePath);
Date date = new Date(file.lastModified());
return date;
}
Run Code Online (Sandbox Code Playgroud)
我打印date时说:Wed Dec 31 19:00:00 EST 1969.根据我的时区经过一些研究后我发现这是我"自Unix时代以来的时间",但我很困惑,为什么当我的文件不存在时我会得到这个输出filePath.为什么不回来null或0?
不,file.lastModified()正在返回0.那是Unix时代
在您的特定时区(美国东部看起来它),Unix时代的当地时间比UTC晚5个小时,所以它是1969年12月31日晚上7点.
要确认这一点,只需将您的Date声明和作业分成两部分:
long lastModifiedMillis = file.lastModified();
Date date = new Date(lastModifiedMillis);
Run Code Online (Sandbox Code Playgroud)
现在,如果你检查lastModifiedMillis我敢肯定,你会发现一个0值,作为记录:
返回
甲long表示文件的最后修改,因为历元以毫秒为单位测得的时间值(00:00:00 GMT,1970年1月1日),或者0L如果该文件不存在,或者如果发生I/O错误
| 归档时间: |
|
| 查看次数: |
1008 次 |
| 最近记录: |