我有兩個問題我還沒有看到關于這個問題的答案,我也不記得檔案中的提示。
當我在作業系統中手動查看檔案時(顯示正確的日期時間),為什么
fs.statSync日期時間戳(例如全部關閉)與我看到的不匹配?birthtime我如何獲得準確的正確時間,與檔案本身顯示的完全一樣?當我在作業系統中查看它時,我知道日期和時間是正確的,因為我在那里拍照。只是不知道該怎么做才能讓 Node.js 給我真正的過去/現在。
這是我在作業系統中的正確輸出(在這種情況下是 Windows,但它需要在所有作業系統中都一樣):


這是我在幾秒鐘內撥打的電話:
const stats = fs.statSync(absPathOfFile);
const dates = [
stats.birthtime,
stats.ctime,
stats.mtime,
stats.atime,
];
那個 Node.js 輸出:
[
2022-10-31T08:47:00.900Z,
2022-06-13T05:37:42.128Z,
2022-04-12T04:55:49.070Z,
2022-10-31T08:47:02.027Z
]
因此,所有這些日期都已關閉。我期待 Node.js 回傳檔案元資料中列出的實際日期/時間。
uj5u.com熱心網友回復:
要使評論討論成為答案:
birthtime不一定在所有檔案系統上都可用,并且///欄位atime映射到檔案系統屬性的方式取決于。Node.js 檔案在這里。mtimectimebirthtime- Windows(可能還有其他作業系統)顯示的“使用日期”是從檔案內部資料本身提取的Exif元資料,與檔案系統日期無關。(IOW,移動檔案或使用 eg
touch或其他呼叫重置其時間不會影響它。) - 回傳的日期采用
statSyncUTC 時間(從ISO8601 格式輸出中的Z時區說明符可以明顯看出)。Windows 以用戶的本地時區顯示日期。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/524312.html
