2014-11-03 60 views
0

我用命令mdls -name kMDItemContentCreationDate $file獲取內容的創建日期在OS XMDLS不報UTC時區調整

~/Movies/Unprocessed -> mdls -name kMDItemContentCreationDate test.txt kMDItemContentCreationDate = 2014-11-02 22:00:57 +0000

文件我的系統上的輸出應該是: kMDItemContentCreationDate = 2014-11-02 18:00:57 -0400

Finder顯示正確的調整創建日期。如果調整沒有存儲在元數據中,那麼它在哪裏存儲?我在哪裏可以獲得實際的本地創建日期?

回答

1

kMDItemContentCreationDate屬性包含GMT中文件的創建日期,不在系統的當前時區中。如果您想在系統本地時區中創建日期,則需要自行轉換。 -f%SC $ file`給該文件被文件系統上創建的時間

date -f'%F %T %z' -j "$(mdls -raw -name kMDItemContentCreationDate test.txt)" 
+0

命令'靜:

一個簡單的方法來轉換這在shell腳本中使用date。 'mdls -name kMDItemContentCreationDate'給出**內容**創建時的時間戳,例如視頻拍攝的日期和時間。如果我複製MOV文件並在兩個文件上運行'stat -f%Sc',我會得到兩個不同的日期。 'mdls'爲原始和副本返回相同的結果。時區信息必須存儲在某個地方,或者時間戳實質上無用於確定視頻拍攝時的開啓時間。 – 2014-11-04 01:54:34

+0

哦,有趣。我看到的所有文件都具有相同的值。無論如何,我已經通過一種轉換方式更新了我的答案。 – duskwuff 2014-11-04 04:59:50

+0

作爲附註 - 請記住,計算機通常將日期(如此處的內容創建日期)存儲爲絕對*時間點*,而不是特定小時/分鐘/秒/時區。 'mdls'選擇以GMT格式輸出,而不是當地時區,但這不是一個「不同的」時間;這只是表示它的一種不同的方式。 – duskwuff 2014-11-04 05:01:51