stat()报告的上次修改时间根据夏令时变化

时间:2013-11-05 23:02:59

标签: windows perl

我的文件的最后修改时间改变了3600秒(一小时),具体取决于我系统的夏令时设置。 stat的文档说明mtime是从纪元开始以秒为单位测量的。因此,mtime不应该依赖于DST。

这导致我的应用程序在不应该检测/报告文件时将其视为不同。

1 个答案:

答案 0 :(得分:6)

所描述的行为是影响NTFS文件系统的Windows“功能”(或deliberate bug,具体取决于您的观点)。该行为是由Microsoft的C运行时中stat函数的实现引起的,并由perl继承。

Win32::UTCFileTime模块提供了解决Windows中行为的内置statlstatutime函数的替换。该模块的文档还包含对问题的深入描述及其实现方式的原因。