Windows上的FAT日期解析时间戳

时间:2015-07-20 19:10:58

标签: c# .net winapi resolution filetime

According to Wikipedia,FAT32上次修改时间的日期分辨率为2秒。这个文件时间可以在WinAPI中获得,也可以在C#中使用DateTime获得File.IO,这两者都是关注的。

日期解决方案在实践中意味着什么?这是否意味着它只能以2秒的间隔为最后修改的文件时间加上时间戳,或者是否意味着它加时间戳的日期仅在2秒内准确?

换句话说(使用yyyy-MM-dd HH:mm:ss:fffffff DateTime format为例),是吗......

  1. 时间戳限制为2秒均匀的时间间隔,例如:2015-07-16 14:28:36:00000002015-07-16 14:28:38:00000002015-07-16 14:28:40:0000000
  2. ...或...

    1. 任意时间戳,只是时间只在某个时间间隔内准确:2015-07-16 14:28:36:1234567 - 意味着最后一次写入实际上可能发生在此时间前2秒的任何地方({{1} })在此时间之后最多2秒(2015-07-16 14:28:34:1234567)?

    2. 还有别的吗?

1 个答案:

答案 0 :(得分:2)

这意味着时间中的秒数只能是偶数整数。

directory entry for the FAT file system只有一个5位字段,用于存储当时的秒数。这将字段中存储的数量限制在0-31范围内,该值乘以2以获得秒数。 (此字段中的值30和31无效。)