long lastmodify = f.lastModified();
System.out.println("File Lost Modify:"+lastmodify);
上記のファイル ("f") のコードを実行していますが、最終変更時刻が 1267082998588 と表示されます。実際、それは何ですか?
long lastmodify = f.lastModified();
System.out.println("File Lost Modify:"+lastmodify);
上記のファイル ("f") のコードを実行していますが、最終変更時刻が 1267082998588 と表示されます。実際、それは何ですか?
ファイルのドキュメントを見てください。1970 年 1 月 1 日 00:00:00 GMT からのミリ秒を返します。
代わりにこれを行うことができます
long lastmodify = f.lastModified();
Date modified = new Date(lastmodify);
System.out.println("File Lost Modify:"+ modified);
それはミリ秒で答えを与えると言いますが、どうやらそうではなく、1000を掛けた秒で答えを与えます:
bsh % File x = new File("/vmlinuz");
bsh % print(x.lastModified());
1318019877000
Linux では、ext4 (マイクロ秒の分解能を持つ) でも、すべてのファイルが 000 で終わります! どうやらWindowsでは最後にノイズが発生しますが、ミリ秒と間違えてはいけません。それは「近似値」だと彼らは言います
Unix エポックからのミリ秒数です。
試す:
import java.text.*;
import java.util.*;
System.out.println(new SimpleDateFormat().format(new Date(f.lastModified())));
日付でやりたいことは何でもできます。特にDate、SimpleDateFormat、およびGregorianCalendarを参照してください。
long lastmodify = f.lastModified();
Date dt=new Date();
SimpleDateFormat date = new SimpleDateFormat("dd/MM/yyyy");
String modify=date.format(lastmodify);
これも私が得た答えの1つです..
File クラスのメソッドの Javadoc を見てください (十分に明確です)。
public long lastModified()
この抽象パス名が示すファイルが最後に変更された時刻を返します。
戻り値:エポック (00:00:00 GMT、1970 年 1 月 1 日) からのミリ秒単位で測定され
た、ファイルが最後に変更された時刻を表す long 値、またはファイルが存在しない場合、または I/O エラーが発生した場合は 0L
これは、ファイルが編集された日付 [ミリ秒で表される] です。1970 年 1 月 1 日 [Unix エポックとも呼ばれる] から経過したミリ秒数です。