-1

Читая статью в Википедии для HFS+, я заметил, что допустимый диапазон дат - 1 января 1904 г. - 6 февраля 2040 г. Аналогично, диапазон для NTFS - 1 января 1601 г. - 28 мая 60056 г. На мой взгляд, об этом нелепо думать, поскольку я не могу вспомнить ни одного случая, когда файл должен иметь измененную / созданную дату, установленную в 1600-х или 1900-х годах. Я могу понять эпоху меток времени Unix, так как было бы разумно создать / изменить файл в 70-х, 80-х и т.д., Но просто нелогично, чтобы эпоха этих временных меток была установлена еще в прошлом.

3 ответа3

2

Это не просто NTFS; Внутреннее хронометраж Windows выполняется с использованием того же формата времени и с тем же началом эпохи.

Они знали, что им нужно 64-разрядное двоичное значение времени, поскольку уже известно, что исходное 32-разрядное значение Unix является тупиком (эти счетчики будут перенесены в 2038 г.), а 64-разрядные значения времени уже использовались в VMS. 64 бита дают возможность считать около 18 миллиардов миллиардов различных значений времени. Ну, на самом деле, только 9 миллиардов миллиардов, потому что значения времени с установленным старшим битом имеют другое значение в Windows (как и в VMS). Таким образом, у нас действительно есть "только" 63 бита для подсчета даты и времени суток.

В то время как 32-битное время Unix считалось только секундами, временные метки Windows считаются с шагом 100 наносекунд. Таким образом, значение времени 1 означает 100 нс после полуночи 1 января 1601 года.

Но зачем выбирать такую "историческую" дату?

Ну, во-первых, это немного облегчает расчеты дня недели и аналогичные вычисления, так как это был первый год самого раннего 400-летнего цикла, который включал в себя электронные компьютеры любого рода. По этой причине существует весьма авторитетная поддержка .

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

1 января 1601 года также считается датой, с которой подсчитываются даты ANSI. Таким образом, "дата Windows" - это тот же номер дня, что и "дата ANSI", что упрощает работу в разных местах.

Он также был стандартизирован как "год 1" григорианского календаря (хотя этот календарь не был принят повсеместно в то время).

Для практической, рабочей причины, однако, рассмотрим: этот формат даты / времени позволяет представлять исторические дату / время, например, в базах данных, наряду с современными, используя тот же формат. Например, в генеалогической базе данных могут храниться даты рождения и смерти ваших предков, начиная с 400 с лишним лет, что намного дольше, чем большинство таких записей существует в надежной форме.

Не было бы смысла расширять это ранее, начиная, скажем, с 1201 года или даже с 1, из-за перехода от юлианского к григорианскому календарю, который начался в некоторых странах в 1582 году и продолжался вплоть до 1926 года, в зависимости от того, какую страну вы были в. Все даты, записанные в формате времени ANSI и, соответственно, в "двоичном" формате времени Windows, считаются григорианским календарем.

Кстати, VMS использует аналогичную схему, но его базовое время 17 ноября 1858 года. Это был стандарт, выбранный Смитсоновской астрофизической обсерваторией в качестве "базовой даты" для спутникового слежения; это было связано с более ранним использованием астрономами оригинальной схемы Юлианского дня, которая насчитывает дни с полудня, 1 января 4713 г. до н.э. По этой схеме 17 ноября 1858 г. выходит в Модифицированный юлианский день номер 2 400 000. Используя MJD вместо JD, они смогли уместить современные даты в 18 бит, что было важным подвигом в то время. Подробности смотрите в этой статье от VMS Engineering.

1

Даты (и спецификация их формата на битовом уровне) используются не только для маркировки файлов, но также для расчета и во многих других местах. Например, историк может захотеть, чтобы в его колонках Excel были даты 17 или 18 века; или астроном рассчитать планетарные выравнивания в эти периоды.

Даже если количество людей, пользующихся им, невелико, потеря является небрежной - не имеет большого значения, можете ли вы использовать этот формат в течение 100, 5000 или 60000 лет; это вероятно не выживет следующие 50 лет.

1

При отдельном рассмотрении широкий диапазон временных отметок NTFS может показаться нелогичным. Но когда вы смотрите на общую картину, это совершенно логично.

Одна из вещей, которую делает операционная система, - это набор функций, которые понадобятся большинству программ. Это позволяет программистам сосредоточиться на своих программах вместо того, чтобы тратить время на переписывание этих общих функций для каждой программы. Любая операционная система, которая не обеспечивает эти функции, вряд ли будет успешной. Windows и Linux предоставляют сотни таких функций.

Windows включает в себя ряд функций для представления и работы с датами и временем. Для максимальной полезности это охватывает как можно более широкий диапазон дат. Многие программы используют эти функции для самых разных целей.

Файловая система NTFS была выпущена как часть платформы NT. Как и любой современной файловой системе, ей нужен был какой-то способ хранения файловых отметок даты. Логически дизайнеры решили использовать ту же систему, что и для приложений. Это делает вещи проще для разработчиков. Конечно, диапазон дат намного шире, чем нужно для штампов с датами, но он ничего не стоит и не вызывает проблем. Использование другой системы с более ограниченным диапазоном дат для отметок даты было бы нелогичным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .