winXP、win7 和 vb.net 下的不同时间戳



在一个 VB.net 程序中,我使用了IO。File.GetCreationTime 用于读取文件系统的文件创建时间。我很生气,因为返回的值与资源管理器中显示的时间不匹配。在另一台计算机上,时间显示正确。

  • 两台机器都使用 NTFS
  • 我将文件从只读FAT32 USB驱动器复制到每台机器的桌面
  • 两台计算机使用相同的时区(GMT+1 加 DST)

显示的时间戳:

  • 我的 VB.net 应用(两台计算机)- 21:09
  • 浏览器时间视窗XP - 22:09
  • 资源管理器时间视窗 7 - 21:09
  • (MacOS X - 21:09)

好消息是,我所说的文件是一个PDF文件。根据PDF的元信息,该文件是在03日创建的。 2002年01月22:09

我希望每台机器上的文件系统日期都相同。您将如何使用 VB.net 解决此问题?

我使用一个简单的应用程序来总结时间戳信息:

GetLastWriteTime(file)
GetLastWriteTimeUtc(file)
GetLastWriteTime(file).ToLocalTime
GetLastWriteTimeUtc(file).ToLocalTime
GetLastWriteTime(file).ToFileTime
GetLastWriteTimeUtc(file).ToFileTime
Date.Now
Date.Now.UtcNow

两台机器上的输出相同。出于某种原因,我更改了两台计算机上的时区设置,打开和关闭 DST。结果很有趣...

  • 。当您在 Windows 上关闭 DST 时XP 所有时间戳都减少了一个(因为在夏令时期间我的时区是 GMT+2(现在),在冬季是格林威治标准时间+1)
  • 。仅在 Windows 7 计算机上在夏令时 (GMT+2) 期间创建的文件受此影响(我的文件是创建于 1 月)

我想反之亦然。所以我的问题只是一个令人沮丧的问题。为了解决这个问题,我将只使用UTC函数并关心我的应用程序中的DST。所以仍然会有偏移,但只要只是显示问题,应该没问题。

相关内容

  • 没有找到相关文章

最新更新