вторник, 13 января 2009 г.

Мистика во времени создания файлов

Создан файл, сохранён на файловом сервере. Смотрим дату и время создания файла в FAR.
14:03, всё отлично.


И тут внезапно обнаруживается, что на другом компьютере при просмотре из другого FAR-а, время отличается на час!


Менеджер другой версии, списываю на глюк беты. Запускаю консоль, dir... Ё-моё. Ситуация не меняется. FAR реабилитирован :) Но дата всё равно отличается на час. Смотрим дату в Проводнике. Всё так же. Так не бывает. Но факт есть факт.

Чешу репу, видимо где-то что-то в системе. Но ведь дата и время создания файлов НЕ МОГУТ ВОТ ТАК ВОТ МЕНЯТЬСЯ, когда захотят.

И тут прозрение. Часовые пояса на двух компах отличаются. У одного Киев, у второго Москва. Разница в час. Но самый класс в том, что время создания/модификации файла пишется по Гринвичу с поправкой на текущий часовой пояс, установленный в операционной системе.

Просто API-шние функции OS сами делают эту поправку, избавляя программиста от лишних вычислений и трудноуловимых ошибок. Именно благодаря этой поправке успешно могут работать программисты над одним и тем же проектом в разных концах света и версии исходных файлов не будут между собой конфликтовать из-за даты модификации.

Остаётся только снять шляпу перед девелоперами из Microsoft, которые столь элегантно решили проблему, использовав возможности WinAPI и не меняя самой сути timestamp-а.
_____________________________
Понравилась статья? Подпишись на RSS!

Комментариев нет: