スキャンした古い写真の作成日を 1970 年の日付に設定したいのですが、サードパーティのツールを使用してこれを行うと、Windows エクスプローラーでは日付が空白で表示されます。NTFS はいつか 1600 年代まで遡ることができると思っていました。何が起こっているのでしょうか?
答え1
クイック分析
フォルダーを参照する場合、Windows エクスプローラーでは特定の範囲外の日付は表示されません。
MS-DOS の日付形式では、1980 年 1 月 1 日から 2107 年 12 月 31 日までの日付のみを表すことができます。
これは日付を手動で設定することで確認できます。
この動作は下位互換性に関連していると私は推測しています。NTFS存在しなかったため、作成日、変更日、アクセス日はそれぞれ 16 ビット (2 バイト) を占めるように設計されました。情報は次のようにまとめられます。
Bits | Description
-------------------------------------------------------
0–4 | Day (1-31)
5–8 | Month (1 = January, 2 = February, etc.)
9-15 | Year offset from 1980 (0 = 1980, 1 = 1981, etc.)
ビットを節約するため、年は整数として保存されず、代わりにオフセットが使用されます。7 ビットあるため、2^7 = 128
可能な値は 1980 ~ 2107 です。
NTFS に関しては、ドキュメントには次のように書かれています。
あファイル時間は、協定世界時 (UTC) 1601 年 1 月 1 日午前 12:00 から経過した 100 ナノ秒間隔の数を表す 64 ビット値です。システムは、アプリケーションがファイルを作成、アクセス、および書き込みを行うファイル時間を記録します。
NTFS ファイル システムは、時刻値を UTC 形式で保存するため、タイム ゾーンの変更や夏時間による影響を受けません。FAT ファイル システムは、コンピューターのローカル時間に基づいて時刻値を保存します。
ソース:ファイル時間
参考文献
回避策
場合によっては、この問題を回避するためにEXIFタグ:
ファイル プロパティ ダイアログには、基盤となるファイル システムでサポートされている任意の日付を表示できます。
次のコマンドを使用する場合、コマンドライン インターフェイスでも同様ですdir
。
01/01/1601 02:23 AM 0 1-oldest.txt
01/01/1970 02:23 AM 0 2-older.txt
01/01/1980 02:23 AM 0 3-old.txt
01/01/2014 02:23 AM 0 4-current.txt
01/01/2107 02:23 AM 0 5-new.txt
01/01/9999 02:23 AM 0 6-newer.txt
サードパーティプログラムなど7-ジップ影響を受けない可能性もあります: