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
