HFS+からAPFSへのマイグレーションで1904年〜1969年のタイムスタンプはどうなるのか
HFS及びHFS+は1904年〜2040年までのタイムスタンプを保持できる。 これは閏年の計算が楽になるとかそういう都合らしい
が、APFSで仕様が変わり、1970年〜2554年までのナノ秒単位タイムスタンプになったらしい。 さてここで疑問が一つ
HFS+からAPFSへのマイグレーションの時、1904年〜1969年のタイムスタンプを含んでいるとどうなるのか?
まあ現実的にはそんなファイルは存在しないはずである
FORTRANとかの歴史をタイムスタンプをわざわざ設定して保存したい人は困るかもしれない やってみよう!
環境
macOS 10.15.7 (19H15)
適当にHFS+のイメージを作る
https://gyazo.com/263bfba418e38e01c13eef6eb5e85998
適当に昔っぽいファイルを作る
code:1904.swift
import Foundation
try! FileManager.default.setAttributes([
.creationDate: Date(timeIntervalSince1970: -66 * 365 * 24 * 60 * 60),
], ofItemAtPath: "./1904")
できた
https://gyazo.com/2305cd997eabdb67c47f6e02736a93b5
これを APFS に変換する
https://gyazo.com/a5dcc70aa4e6989d8f6e21b9a6650908
https://gyazo.com/2d3d2298e24058320517774ca9928af1
結果:1970年1月1日に切り上げられていた
https://gyazo.com/7fcecad10f73162f4ca21322a547dcf3
あれ??まだ Swift からだと1904年のファイルを作れるぞ
https://gyazo.com/1c7c2851a89184f8f17c3a355ff17188
再マウントしても残ってる
https://gyazo.com/35df195df66250f8422f9abbde038de8