簡體   English   中英

winXP,win7和vb.net下的不同時間戳

[英]Different timestamps under winXP, win7 and vb.net

在VB.net程序中,我使用IO.File.GetCreationTime來讀取文件系統的文件創建時間。 我很生氣,因為返回的值與資源管理器中顯示的時間不匹配。 在另一台機器上,時間顯示正確。

  • 兩台機器都使用NTFS
  • 我將文件從只讀FAT32 USB驅動器復制到每台計算機的桌面上
  • 兩台機器使用相同的時區(GMT + 1加上DST)

顯示的時間戳:

  • 我的VB.net應用程序(兩台機器)-21:09
  • Windows XP的資源管理器時間-22:09
  • Windows 7的資源管理器時間-21:09
  • (MacOS X-21:09)

好消息是,我正在談論的文件是PDF文件。 根據PDF的元信息,該文件創建於2002年1月3日。

我希望每台計算機上的文件系統日期都相同。 您將如何使用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 XP上關閉DST時, 所有時間戳都會減少1(因為在DST期間,我的時區是GMT + 2(現在) ,在冬季是GMT + 1)
  • ...在Windows 7計算機上, 僅DST(GMT + 2)期間創建的文件受此影響(我的文件是在一月創建的)

我想這是相同的效果,反之亦然。 所以我的問題只是一個巨大的問題。 為了解決這個問題,我將只使用UTC功能並在我的應用程序中關心DST。 因此仍然會有偏移,但是只要是顯示問題,它就可以。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM