Найти в Дзене
Сисадмин

Почему в свойствах файлов на Windows можно встретить 01.01.1601?

Если у UNIX день рождения — 1 января 1970, то Windows празднует свой день рождения где-то в корпоративном аду, среди реестра, DLL и бесконечных апдейтов, которые требуют перезагрузки даже чтобы поменять обои. Давайте окунёмся в легенду о происхождении Времени в Windows.
Да, именно Времени — с большой буквы, потому что оно там идёт не вперёд, а через “Checking for updates...”. В то время как UNIX в 1970-м гордо сказал “time starts now”,
Майкрософт решила: “Мы — не какие-то хиппи с Белл Лабс. У нас будет по-другому. И желательно с обратной совместимостью до динозавров.” Поэтому Windows считает своё время с 1 января 1601 года.
Да-да.
Шестнадцатого века.
Когда ещё не было ни электричества, ни клавиатур, ни даже Excel — а Windows уже мысленно планировала свою первую "синюю смерть". Ответ прост:
потому что COM и FILETIME. Windows использует 64-битный счётчик — количество 100-наносекундных интервалов с 1 января 1601 (UTC).
Почему именно 1601?
Потому что с этого года начался первый пол
Оглавление
Почему в свойствах файлов на  Windows можно встретить 01.01.1601?
Почему в свойствах файлов на Windows можно встретить 01.01.1601?

Если у UNIX день рождения — 1 января 1970, то Windows празднует свой день рождения где-то в корпоративном аду, среди реестра, DLL и бесконечных апдейтов, которые требуют перезагрузки даже чтобы поменять обои.

Давайте окунёмся в легенду о происхождении Времени в Windows.

Да, именно Времени — с большой буквы, потому что оно там идёт не вперёд, а через “Checking for updates...”.

Глава 1. В начале был BIOS, и тьма над C:\

В то время как UNIX в 1970-м гордо сказал “time starts now”,

Майкрософт решила: “Мы — не какие-то хиппи с Белл Лабс. У нас будет
по-другому. И желательно с обратной совместимостью до динозавров.”

Поэтому Windows считает своё время с 1 января 1601 года.

Да-да.

Шестнадцатого века.

Когда ещё не было ни электричества, ни клавиатур, ни даже Excel — а Windows уже мысленно планировала свою первую "синюю смерть".

Глава 2. Почему 1601?

Ответ прост:

потому что COM и FILETIME.

Windows использует 64-битный счётчик — количество 100-наносекундных интервалов с 1 января 1601 (UTC).

Почему именно 1601?

Потому что с этого года начался
первый полный 400-летний цикл григорианского календаря, и программисты Майкрософта решили:

“О, идеально. Никаких високосных приколов на 400 лет вперёд. Пусть живёт.”

В то время как создатели Unix такие:

“Мы начнём в 1970 — там, где кончаются 60-е и начинается эпоха компьютеров.”

Глава 3. FILETIME — монстр, который считает наносекунды

UNIX считает секунды, а Windows — 100-нс интервалы.

Это примерно 10 миллионов шагов в секунду.

Типа у Windows таймер настолько высокоточный, что всё равно отстаёт на три минуты после перезагрузки.

Каждый файл в NTFS, каждый лог в Event Viewer хранит дату в формате FILETIME, который выглядит как какая-то космическая шестнадцатеричная проклятая магия вроде:

132784917204530000.

И если ты осмелишься преобразовать это число в дату — получишь “четверг, 26 сентября 2025, 18:22:00”,

а не “дата из будущего, когда Windows наконец-то перестанет требовать .NET 3.5”.

Глава 4. Разделение миров

UNIX живёт в мире простоты:

time_t → секунды с 1970-го.

Windows живёт в мире боли:

FILETIME → 100-нс интервалы с 1601-го, умножь на 10⁻⁷, потом прибавь смещение UTC, потом умножь на π, и получи дату последнего BSOD.

Поэтому, когда ты синхронизируешь время между Linux и Windows — где-то в глубине сети открывается портал,

и демоны NTP бьются с духом PDC из клана Active Directory, выясняя, кто прав в вопросе эпох.

Глава 5. Когда Windows вспоминает 1601-й

Если ты когда-нибудь видел, как в проводнике дата создания файла внезапно превращается в 01.01.1601 03:00, не пугайся. Это не баг.

Это просто Windows вернулась в свои истоки.
В момент до апдейтов, до UAC, до лицензий — в чистое состояние вечности.

Глава 6. Философия древнего времени

UNIX говорит:

“Секунды просты. Главное — не выходить за int32.”

Windows отвечает:

“Мы считаем всё с 1601 года, в наносекундах. Потому что можем. (Но всё равно округлим до ближайшего миллисекундного лага).”

Так что, когда ты в следующий раз увидишь "01.01.1601" в свойствах файла,

вспомни, что
это не ошибка,

а
корни великой традиции — считать время с эпохи, когда человечество ещё не изобрело Ctrl+Alt+Del.