我想將一些舊掃描圖片的建立日期設定為 1970 年的日期。我認為 NTFS 可能會回到 1600 年代。到底是怎麼回事?
答案1
快速分析
瀏覽資料夾時,Windows 資源管理器不會顯示特定範圍以外的日期:
MS-DOS 日期格式只能表示 1/1/1980 到 12/31/2107 之間的日期。
這可以透過手動設定日期來確認:
我的假設是這種行為與向後相容性有關。什麼時候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,文檔是這樣說的:
A文件時間是一個 64 位元值,表示自 1601 年 1 月 1 日凌晨 12:00 協調世界時 (UTC) 以來經過的 100 奈秒間隔數。系統記錄應用程式建立、存取和寫入檔案的檔案時間。
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-拉鍊也可能不受影響: