ファイル/ディレクトリを最終的に変更した時刻を特定する必要があるプログラムを作成しています。私はJoda Timeを使ってこの時間を処理したいと思います。そして、Java 7 NIO.2クラスFiles
を使ってファイルを最終変更時刻にしています。そのgetLastModifiedTime()
方法は、結果、私はジョダ時間DateTime
クラスのコンストラクタに渡す便利な方法toMillis()
を、持っているFileTime
クラスのインスタンスを返します。Java 7 NIO.2 Files.getLastModifiedTimeタイムゾーン
new DateTime(Files.getLastModifiedTime(path).toMillis());
しかし、私は私がDateTime(long)
以来、この間違ったをやっている感じを持っていますコンストラクタは、デフォルトのタイムゾーンでDateTime
インスタンスが作成されることを明示しています。ただし、どこにでもタイムゾーンは記載されていません。私はFileTime
コードを見ました。非常に単純なようで、そのtoString()
メソッドは、UTCタイムゾーン(UTCタイムゾーンでCalendar
を作成し、そのミリ秒を直接設定する)を使用していることを示唆しています。
したがって、FileTime
はUTCまたは現地時間を使用しますか? FileTime
をDateTime
に変換する正しい方法は何ですか?
ありがとう、今私は理解しています。何らかの理由で、私は 'DateTime'コンストラクタがローカルタイムゾーンでタイムスタンプを期待していると思っていましたが、あなたが言ったように、タイムスタンプは常にUTCです。次に、別の 'DateTime'コンストラクタの' DateTimeZone'引数は、このタイムスタンプの表示方法を定義します。 –