關於時間戳記



贊助商連結


琥珀
2010-08-05, 04:36 PM
每個作業系統都有其記錄時間的方法,精確度也不一定相同。以 Windows 來說,使用不同的檔案系統,檔案的時間戳記,精確度是有差別的。

為何會注意時間的問題?其實是想研究檔案的時間戳記,也可以說是因為自己犯了大錯,導致必須花一些時間尋找有關作業系統和檔案系統的基本時間知識。思考許久,結論是避免使用不同的檔案系統,以免造成時間資訊的錯亂。

FAT32:2 秒 (s)
exFAT:10 毫秒 (ms)
NTFS:100 奈秒 (ns)

以上這三個數據,只是概略說明檔案系統的時間精確度,許多細節這裡就省略不寫。使用者如果想要保存較精確的時間戳記,檔案請儲存於 NTFS 檔案系統,FAT32 和 exFAT 都不需要再考慮了。在檔案交換的情況下,目的和來源的檔案系統要保持一致,如此時間戳記才會確實保存,不會被和諧掉。至於卸除式媒體,在以前 FAT16 和 FAT32 的使用頻率很高,不過目前也是建議直接用 NTFS 就行了。最後,光碟一般是使用 CDFS (ISO9660) 和 UDF 檔案系統,時間的問題也是要多留意。

檔案資訊的交換過程,多少都會造成某些資訊遺失,不同的檔案系統是如此,不同的作業系統更是如此。如果檔案時間很重要,最好的方式就是封存起來,然後看是要儲存在光碟上,或是經由網路傳送到非 Windows 系統都可以。

Windows 系統是使用 64-bit 數值保存時間資訊,在 NTFS 絕跡前還可以活很久很久,因此不用擔心世界末日的問題。如果使用者想要 1 奈秒的精確度,推薦使用 ext4 檔案系統,效能讓人滿意;另外,聽說 FreeBSD 的 ufs2 也支援 1 奈秒的精確度,只是預設沒有啟用,有興趣者不妨一試。


為了研究時間的問題,有額外的收穫,了解到國際標準上關於日期和時間的資訊交換表示法 (http://en.wikipedia.org/wiki/ISO_8601)。感覺國內比較少遵從這樣的標準化格式,不過在國外倒是有一點點這樣的印象。

贊助商連結


markcoke
2010-08-06, 01:22 AM
真是太專業了~~
好像在計算隕石多久會撞擊地球~~
呵呵...

pavo
2010-08-06, 03:54 PM
FAT32:2 秒 (s)
exFAT:10 毫秒 (ms)
NTFS:100 奈秒 (ns)

真是上了一課 ..

我個人對檔案時間戳記還真的沒什麼概念 .琥珀不知在什麼用途上有需要到如此精確的時間戳記?

琥珀
2010-08-10, 01:57 PM
時間的精確度高,對於電腦系統而言是有意義。只因為一秒的誤差,對於檔案處理都有機會造成誤判。

當然,這是誇大的說法,只是讓使用者知道,的確有此可能性。現在的程式大都有注意到時間的問題,不用過度擔心。如果可以追求時間精確,使用上就不用客氣,又 NTFS 檔案系統的歷史也有十多年,已經相當成熟,幾乎沒有不用的理由。

許多檔案時間修改程式,通常秒是最小值 (作業系統的預設時間顯示單位),修改不到的地方,大都選擇歸零。因此,想知道檔案時間是自然產生,或是人為設定,用可以顯示秒以下單位的程式,馬上就原形畢露。

自己常常更新一些小程式,以及檢查作業系統的更新檔案,因此對於時間的敏銳度比較高。遇到時間只相差 1~2 秒的檔案,甚至是「時光平移」的情況,就知道不小心犯了大錯。


看完之後,請一起說:

STOP USING WINDOWS FAT16!
STOP USING WINDOWS FAT32!
STOP USING WINDOWS exFAT!

遊戲結束。


說不定自己是被虐狂,因為這十年來,還是會用到磁片。搜尋完資料和討論,覺得很好笑 (可笑しいね)。