词典

什么是文件修改日期?

“修改日期”,也叫文件修改日期,记录文件上次被更改的时间。了解这个数值长什么样、是什么会改变它,以及它与其他日期有何不同。

file-modification-date-time

“修改日期”(Date modified),也叫“修改时间”(modification time),是文件最后一次被更改的日期和时间。在元数据列表中,这个字段叫 File Modification Date/Time。ExifTool 程序把这个标签命名为 FileModifyDate。

这个日期不会存储在文件内部。磁盘上的文件系统会和文件名以及文件大小一起保存它。ExifTool 把这类数值称为伪标签(pseudo tags),因为它们不是真正存储在文件中的元数据。

哪些文件携带它

无论是什么格式,每个文件都有修改日期。照片、歌曲、视频和文档都会从文件系统得到一个修改日期。

在 Windows 文件资源管理器中,它显示为 Date modified,而 Windows 程序称其为最后写入时间(last write time)。遵循 POSIX 标准的系统称其为最后数据修改时间戳(last data modification timestamp)。

该数值的格式

ExifTool 显示的年、月、日之间用冒号分隔,后面是时间和时区偏移量。ExifTool 文档中的示例如下:

  • 2009:10:05 20:40:36-04:00 表示 2009 年 10 月 5 日晚上 8:40:36
  • 末尾的 -04:00 表示比 UTC 慢 4 小时,带加号则表示比 UTC 快

在 Windows 上,NTFS 文件系统以 UTC 存储这个日期。你看到的时间取决于你电脑的时区。在微软的一个示例中,一个在太平洋时间 15:00 保存的文件,在设置为东部时间的电脑上会显示为 18:00。

较旧的 FAT 文件系统则存储本地时间,因此同一个文件在两个地方都会显示为 15:00。FAT 还以 2 秒为步长存储修改时间。

是什么改变了这个日期

当程序向文件写入新数据时,这个日期会更新为当前时间,例如当你保存一个文档时。向文件写入新的元数据(比如给照片添加标签)也会更改这个日期。ExifTool 在写入标签时会把这个日期设为当前时间,除非你使用它的 -P 选项。

读取文件不会改变修改日期。读取只会改变另一个数值,即最后访问日期。不同的拷贝程序行为不同:有的会保留原始修改日期,有的则会把副本的日期设为当前时间。

你也可以自己设置这个日期。POSIX 的 touch 命令可以把它设为当前时间,或你指定的时间。ExifTool 可以把照片拍摄日期复制到修改日期中。

文件内部的修改日期

很多格式也会在文件内部存储修改日期。只有编辑该文件的程序才能更新它,所以它可能与文件系统中的日期不一致。比如:

  • 在 JPG 照片中,EXIF 标签 ModifyDate,ID 0x0132,保存文件被更改的日期和时间。另一个标签 OffsetTime 可以保存其时区信息。
  • 在 PDF 文件中,文档信息中包含一个 ModDate 条目。
  • 在 MP4 和 MOV 视频中,影片头(movie header)中有一个 ModifyDate,应该以 UTC 存储。

它的重要性

Date modified 表示文件最后一次被保存的时间,而不是创建时间。要查看照片拍摄的时刻,请查看 Date/Time Original。要查看文件首次创建的时间,请查看 Create Date。

这个数值的准确性取决于保存文件的那台电脑的时钟。程序也可以把它设为任意时间,因此它不能证明文件实际被更改的时间。

备份程序可以用这个日期来查找发生更改的文件。例如,Windows 的 Robocopy 命令可以按最后修改日期跳过某些文件。