Различные временные метки под winXP, win7 и vb.net - PullRequest
0 голосов
/ 15 мая 2011

В программе VB.net я использовал IO.File.GetCreationTime, чтобы прочитать время создания файла в файловой системе.Я был раздражен, потому что возвращаемое значение не совпадало со временем, отображаемым в проводнике.На другом компьютере время отображалось правильно.

  • Обе машины используют NTFS
  • Я скопировал файл с USB-накопителя FAT32 только для чтения на рабочий стол каждой машины
  • Обе машины используют один и тот же часовой пояс (GMT + 1 плюс DST)

отображаются метки времени:

  • мое приложение VB.net (обе машины) - 21: 09
  • Время проводника Windows XP - 22: 09
  • Время проводника Windows 7 - 21: 09
  • (MacOS X - 21:09)

Хорошо, что файл, о котором я говорю, - это файл PDF.В соответствии с метаинформацией PDF файл был создан 03.Январь 2002 22: 09

Я хочу, чтобы даты файловой системы были одинаковыми на каждой машине.Как бы вы решили эту проблему, используя VB.net?

1 Ответ

1 голос
/ 16 мая 2011

Я использовал простое приложение для обобщения информации о метках времени:

GetLastWriteTime(file)
GetLastWriteTimeUtc(file)
GetLastWriteTime(file).ToLocalTime
GetLastWriteTimeUtc(file).ToLocalTime
GetLastWriteTime(file).ToFileTime
GetLastWriteTimeUtc(file).ToFileTime

Date.Now
Date.Now.UtcNow

Вывод был одинаковым на обеих машинах. Почему-то я изменил настройки часового пояса на обеих машинах, включив и выключив DST. Результат интересный ...

  • ... при выключении DST в Windows XP все отметки времени уменьшены на один (потому что во время летнего времени мой часовой пояс GMT + 2 (сейчас) , во время зима это время по Гринвичу + 1)
  • ... только на компьютере с Windows 7 файлы, созданные во время летнего времени (GMT + 2) затронуты этим (мой файл был создано в январе)

Полагаю, это тот же эффект, что и наоборот. Так что моя проблема - просто проблема. Чтобы решить эту проблему, я буду использовать только функции UTC и заботиться о летнем времени в моем приложении. Таким образом, смещение все еще будет, но оно должно быть в порядке, пока это просто проблема с отображением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...