Знают ли временные зоны файлов Windows временные метки?

14

У меня есть файл, который был изменен до или после его отправки мне.
Однако он был создан в другом часовом поясе, поэтому, если дата изменения находится в часовом поясе отправителя, он был последним, кто изменил его. Если это в моем часовом поясе, я изменил его.

Итак, знаете ли вы, когда даты изменения файлов Windows соответствуют часовому поясу?

bastibe
источник

Ответы:

17

Часовой пояс является артефактом преобразования из «мгновений» в удобочитаемую дату и время в некотором календаре.

Компьютерам не нравятся удобочитаемые форматы (не так сильно, как люди, по крайней мере), поэтому они обычно хранят моменты в нейтральном для зоны формате. Например, в файловой системе NTFS отметки времени хранятся в формате UTC.

Следовательно, время изменения файла сохраняется должным образом, пока тот, кто его изменяет, знает текущее время. Если ваша система Windows отображает «13:19» и считает, что находится в часовом поясе GMT-5, то это означает, что текущий момент - «18:19» в UTC, и записывает столько же в недрах NTFS. Однако, если ОС отображает «13:19», но считает, что находится в часовом поясе GMT ​​+ 3, то ОС выключается на восемь часов, даже если для человека, смотрящего на экран, все выглядит хорошо.

Другой момент заключается в том, что время модификации файла является свойством системы хранения, в которой хранится файл, например файловой системы. Когда файл «отправляется», тогда это время не обязательно будет перемещаться вместе с ним. Некоторые форматы архивов (например, Zip) включают время изменения файла вместе с файлом. Это не относится к файлу, отправленному «как есть», прикрепленному к электронному письму, время изменения файла не будет.

Томас Порнин
источник
Это было редким, gpg-ed и по электронной почте. Поскольку временная метка модификации была раньше, чем метка создания, я думаю, она сохранилась правильно.
Bastibe
5

Вы можете увидеть некоторые подсказки в документации Microsoft для FILETIME . В структуре нет положения о часовом поясе, но в тексте говорится, что NTFS хранит все времена файла в формате UTC.

Марк Рэнсом
источник
4

Временные метки Windows учитывают часовой пояс. Тем не менее, ваш механизм передачи файлов может не быть.

Дэвид Пфеффер
источник
Это может быть проблемой ... Спасибо за указание на это!
Бастиб
3
Просто для пояснения, нет фактического поля для часового пояса, но поскольку все времена хранятся в UTC, а затем на лету преобразуются в местное время в Explorer, это не проблема.
Дэвид Пфеффер
1
с точки зрения пользовательского опыта, первое утверждение кажется правильным, но с технической точки зрения оно совершенно неверно. однако, ваше разъяснение правильно, и вы должны действительно отредактировать свой ответ, чтобы указать это напрямую.
Квик-кихот
3

В качестве дополнения обратите внимание, что, хотя даты изменения файлов из NTFS или других файловых систем могут зависеть от часового пояса, данные EXIF ​​(например, дата / время, когда снимок был сделан вашей камерой), вполне могут не быть и не могут храниться как UTC, так что может оказаться сложно конвертировать. Просто мысль, в случае, если файл создать / изменить / EXIF ​​дата / время, кажется, не согласны.

Кажется, я вспоминаю Windows 7, улучшенную по сравнению с предыдущими версиями, с точки зрения отображения данных EXIF, то есть преобразования их на лету для кратких целей в текущее местное время, если это возможно.

AdamV
источник
+1 EXIF ​​обычно просто хранит местное время и не может указать часовой пояс :-(
sleske
2

Помните, что файловые системы FAT НЕ учитывают часовой пояс, но это влияет на вас, только если вы переносите файл на устройство с файловой системой FAT, которая пересекает часовые пояса.

AnonF
источник
Или в летнее время.
Брендан Абель
То же самое относится и к файлам внутри ZIP-архивов, поскольку формат наследует формат отметки времени FAT16 (точность 2 секунды и информация о часовом поясе отсутствует).
rustyx