Juliaでファイルの最終更新時間を確認する方法
説明
stat() 関数を使うと ファイルのメタデータを確認できる。 ファイルが最後に修正された時刻は mtime 属性に格納されている。だが stat() 関数は現在からどれだけ前かを示し、直接 info.mtime を確認しても奇妙な数値しか出ない。
julia> stat("test.txt")
StatStruct for "test.txt"
size: 82 bytes
device: 1692283895
inode: 26886
mode: 0o100666 (-rw-rw-rw-)
nlink: 1
uid: 0
gid: 0
rdev: 0
blksz: 4096
blocks: 0
mtime: (17 minutes ago)
ctime: (17 minutes ago)
julia> info.mtime
1.7514459083956373e9
これは mtime が Unix タイムスタンプ形式で保存されているためだ。Unix タイムスタンプは 1970年1月1日 00:00:00 UTC からの経過秒数を表す。つまり上のコードの結果は、ファイルが最後に修正された時刻が 1970年1月1日以降から約 1,751,445,908.395637.3 秒が経過していることを意味する。これを人間が読みやすい形式に変換するには標準ライブラリ Dates を使えばよい。
コード
関数 unix2datetime() を使えばよい。mtime 自体を関数として呼び出すこともできる。
julia> mtime("test.txt")
1.7514459083956373e9
julia> using Dates
julia> test_mtime = unix2datetime(info.mtime)
2025-07-02T08:45:08.395
julia> Dates.format(test_mtime, "yyyy-mm-dd HH:MM:SS")
"2025-07-02 08:45:08"
環境
- OS: Windows11
- Version: Julia 1.11.3
