1

次のようなファイルでいくつかのテストを行っていました。

    public Date findFileDate(){
    File file = new File(filePath);
    Date date = new Date(file.lastModified());
    return date;
}

印刷dateすると、次のように表示されますWed Dec 31 19:00:00 EST 1969。いくつかの調査の結果、タイムゾーンによると、それが「Unixエポックからの時間」であることがわかりましたが、filePath. なぜ返さないのですnull0

4

2 に答える 2

6

いいえ、file.lastModified()0 を返しています。それが Unix エポックです

特定のタイム ゾーン (見た目では米国東部) では、Unix エポックの現地時間は UTC から 5 時間遅れていたため、1969 年 12 月 31 日の午後 7 時でした。

これを確認するには、Date宣言と割り当てを 2 つに分けてください。

long lastModifiedMillis = file.lastModified();
Date date = new Date(lastModifiedMillis);

調べてみると、文書化lastModifiedMillisされているように、値が 0 であることがわかります。

戻り値 エポック (1970 年 1 月 1 日 00:00:00 GMT) からのミリ秒単位で測定された、ファイルが最後に変更された時刻を表す値、または
ファイルが存在しない場合、または I/O エラーが発生した場合long0L

于 2014-05-02T17:00:06.243 に答える