1
    long lastmodify   =   f.lastModified();
    System.out.println("File Lost Modify:"+lastmodify);

我正在运行文件(“f”)的上述代码,但它显示最后修改时间是:1267082998588 我很困惑,这是不是时间。?实际上它是什么?

4

6 回答 6

5

查看文件文档。它返回自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。

你可以这样做

long lastmodify = f.lastModified();
Date modified = new Date(lastmodify);
System.out.println("File Lost Modify:"+ modified);
于 2010-02-25T07:47:40.630 回答
5

说它以毫秒为单位给出答案,但显然它没有给出答案,它以为单位乘以一千给出:

bsh % File x = new File("/vmlinuz");     
bsh % print(x.lastModified());      
1318019877000

在 Linux 中,即使使用 ext4(具有微秒分辨率),所有文件都以 000 结尾!显然,在 Windows 中,您最终会收到噪音,但不应将其误认为毫秒,他们说,这是“近似值”

于 2011-11-01T14:47:41.000 回答
3

它是自 Unix 纪元以来的毫秒数。

尝试:

import java.text.*;
import java.util.*;
System.out.println(new SimpleDateFormat().format(new Date(f.lastModified())));

你可以对日期做任何你想做的事情。请参阅DateSimpleDateFormatGregorianCalendar

于 2010-02-25T07:43:17.517 回答
1

看一下 File 类中方法的 Javadoc(很清楚):

公开的 long lastModified()

返回此抽象路径名表示的文件最后一次修改的时间。

返回:
表示文件最后修改时间的长值,以自纪元(格林威治标准时间 00:00:00,1970 年 1 月 1 日)以来的毫秒数为单位,如果文件不存在或发生 I/O 错误,则返回 0L

于 2010-02-25T07:49:13.000 回答
1
    long lastmodify   =   f.lastModified();
    Date dt=new Date();
    SimpleDateFormat date   = new SimpleDateFormat("dd/MM/yyyy");
    String modify=date.format(lastmodify);

这也是我得到的答案之一。。

于 2010-02-26T12:07:25.313 回答
0

那是文件被编辑的日期[以毫秒表示]。它是自 1970 年 1 月 1 日 [也称为 Unix 纪元] 以来经过的毫秒数

于 2010-02-25T07:44:17.843 回答