Jump to content

Эпоха (вычисления)

В вычислительной технике эпоха — это фиксированные дата и время, используемые в качестве эталона, по которому компьютер измеряет системное время . Большинство компьютерных систем определяют время как число, представляющее секунды, удаленные от определенной произвольной даты и времени. Например, Unix и POSIX измеряют время как количество секунд, прошедших с четверга 1 января 1970 года 00:00:00 UT , момента времени, известного как эпоха Unix . Системы Windows NT , вплоть до Windows 11 и Windows Server 2022 включительно , измеряют время как количество 100-наносекундных интервалов, прошедших с 1 января 1601 года 00:00:00 UTC, что делает этот момент времени эпохой для этих систем. [1] Эпоха вычислений почти всегда определяется как полночь по всемирному времени определенной даты.

Разрешение и представление

[ редактировать ]

Программные системы хронометража сильно различаются по разрешению измерения времени; некоторые системы могут использовать единицы времени размером с день, в то время как другие могут использовать наносекунды . Например, для даты эпохи в полночь по всемирному координированному времени (00:00) 1 января 1900 года и единицы времени в секунду время полуночи (24:00) между 1 января 1900 года и 2 января 1900 года представлено число 86400, количество секунд в одном дне. Когда необходимо представить время, предшествующее эпохе, обычно используется та же система, но с отрицательными числами.

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

Проблемы

[ редактировать ]

Компьютеры обычно не хранят сколь угодно большие числа. Вместо этого каждому числу, хранящемуся в компьютере, выделяется фиксированный объем места. Следовательно, когда количество единиц времени, прошедших с эпохи системы, превышает наибольшее число, которое может поместиться в пространстве, отведенном для представления времени, представление времени переполняется , и могут возникнуть проблемы. Хотя поведение системы после переполнения не обязательно предсказуемо, в большинстве систем число, обозначающее время, обнуляется, и компьютерная система снова считает, что текущее время является временем эпохи.

Наиболее известная проблема, с которой столкнулись старые системы, которые считали время как количество лет, прошедших с эпохи 1 января 1900 года, и которым выделялось достаточно места только для хранения чисел от 0 до 99, столкнулась с проблемой 2000 года . Эти системы (если их не исправить заранее) будут интерпретировать дату 1 января 2000 года как 1 января 1900 года, что приведет к непредсказуемым ошибкам в начале 2000 года.

Даже системы, которые выделяют больше памяти для представления времени, не застрахованы от ошибок такого рода. Многие Unix-подобные операционные системы , которые отслеживают время в секундах, прошедших с даты начала 1 января 1970 года, и выделяют достаточно памяти для хранения чисел размером до 2 147 483 647, 19 января 2038 года столкнутся с проблемой переполнения. Это известно как года Проблема 2038 .

В вычислениях существуют и другие, более тонкие проблемы измерения времени, такие как учет високосных секунд , которые не наблюдаются с какой-либо предсказуемостью или регулярностью. Кроме того, приложения, которым необходимо представлять исторические даты и время (например, представлять дату до перехода с юлианского календаря на григорианский календарь ), должны использовать специализированные библиотеки хронометража .

Наконец, некоторые программы должны поддерживать совместимость со старыми программами, которые не отслеживают время в строгом соответствии с традиционными системами хронометража. Например, Microsoft Excel использует вымышленную дату 29 февраля 1900 года , чтобы обеспечить совместимость ошибок со старыми версиями Lotus 1-2-3 . [2] Lotus 1-2-3 наблюдал дату из-за ошибки; к тому времени, когда ошибка была обнаружена, исправлять ее было уже слишком поздно - «теперьшнее изменение нарушило бы формулы, которые были написаны для учета этой аномалии». [3]

В спутниковых системах времени

[ редактировать ]

Существует как минимум шесть спутниковых навигационных систем, каждая из которых функционирует путем передачи сигналов времени . Из двух единственных спутниковых систем с глобальным покрытием GPS вычисляет сигнал времени по эпохе, тогда как ГЛОНАСС вычисляет время как смещение от UTC , при этом входные данные UTC корректируются с учетом дополнительных секунд . Из двух других систем, нацеленных на глобальный охват, Galileo выполняет расчеты по эпохам, а BeiDou рассчитывает по UTC без поправки на дополнительные секунды. [4] [ нужно обновить? ] GPS также передает смещение между временем UTC и временем GPS и должно обновлять это смещение каждый раз, когда появляется дополнительная секунда , что требует от приемных устройств GPS правильной обработки обновления. Напротив, дополнительные секунды прозрачны для пользователей ГЛОНАСС.Сложности расчета UTC по эпохе объясняются Европейским космическим агентством в документации Galileo в разделе «Уравнения для корректировки системного времени в соответствии с эталонной шкалой времени». [5]

Известные даты эпохи в области вычислений

[ редактировать ]

В следующей таблице перечислены даты эпох, используемые популярным программным обеспечением и другими компьютерными системами. Время в этих системах хранится как количество определенной единицы времени (дни, секунды, наносекунды и т. д.), прошедшее с указанного времени (обычно полночь по всемирному координированному времени в начале заданной даты).

Дата эпохи Известные применения Обоснование выбора
0 1 января до н. э. [номер 1] МАТЛАБ [6] «Год 0» в ISO 8601
1 января 1 г. н. э. [номер 1] Microsoft.NET , [7] [8] Идти , [9] РЕКСС , [10] Рата Ди [11] Наша эра , ISO 2014 , [12] RFC 3339 [13]
14 октября 1582 г. СПСС , [14] Языковая среда IBM z/OS, [15] IBM AIX КОБОЛ [16] То же, что и ниже, но с индексацией по единице.
15 октября 1582 г. UUID версии 1 Дата григорианской реформы христианского календаря. [17]
1 января 1601 г. NTFS , КОБОЛ , [18] Win32 / Win64 (временная эпоха NT) [19] [20] 1601 год был первым годом 400-летнего цикла по григорианскому календарю на момент создания Windows NT. [19]
31 декабря 1840 г. MUMPS Язык программирования 1841 год был невисокосным, за несколько лет до рождения самого старого из ныне живущих граждан США, когда был разработан этот язык. [21]
17 ноября 1858 г. VMS , Военно-морская обсерватория США , 16-битные дневные отметки DVB SI, другие астрономией. вычисления, связанные с [22] 17 ноября 1858 года, 00:00:00 UT — это ноль модифицированного юлианского дня (MJD), эквивалентного юлианского дня. 2400000,5 [23]
10 мая 1869 г. Дата PHAMIS, используемая в Lastword/Carecast/Centricity Enterprise EHR, работающем на Tandem/NonStop. серверах Дата создания трансконтинентальной железной дороги Golden Spike , когда железные дороги Central Pacific и Union Pacific наконец встретились на мысе Саммит, штат Юта, в мае 1869 года.
30 декабря 1899 г. Microsoft COM DATE , Object Pascal , LibreOffice Calc , Google Таблицы [24] Техническое внутреннее значение, используемое Microsoft Excel; для совместимости с Lotus 1-2-3 . [2]
31 декабря 1899 г. Диалог АПЛ , [25] Microsoft Си/С++ 7.0 [26] Выбрано так, чтобы (модуль даты 7) давал 0=воскресенье, 1=понедельник, 2=вторник, 3=среда, 4=четверг, 5=пятница и 6=суббота. Последняя версия Microsoft, отличная от Visual C/C++, использовала это, но впоследствии была отменена.
0 января 1900 г. Майкрософт Эксель , [2] Лотос 1-2-3 [27] Хотя логически 0 января 1900 года эквивалентно 31 декабря 1899 года, эти системы не позволяют пользователям указывать последнюю дату. Поскольку в этих системах 1900 год ошибочно считается високосным , 0 января 1900 года фактически соответствует исторической дате 30 декабря 1899 года.
1 января 1900 г. Сетевой протокол времени , Протокол времени , IBM CICS , Mathematica , RISC OS , VME , Common Lisp , Michigan Terminal System
1 января 1901 г. Есть [28] В первой версии языка даты были ограничены диапазоном от 1901 до 2099, чтобы избежать годов, на которые распространяется правило 400 лет високосного года . Когда верхняя граница была расширена в более поздних версиях, нижняя граница осталась прежней для обеспечения обратной совместимости с системами, которые использовали ее в качестве исходной точки . [28]
1 января 1904 г. LabVIEW , Apple Inc. от классическая Mac OS , язык сценариев JMP, Palm OS , MP4 , Microsoft Excel (опционально), [29] ИГОРЬ Про 1904 год — первый високосный год XX века. [30]
1 января 1960 г. Система САС [31]
31 декабря 1967 г. Выберите ОС и варианты (jBASE, Universe, Unidata, Revelation, Reality) Выбрано так, чтобы (модуль даты 7) давал 0=воскресенье, 1=понедельник, 2=вторник, 3=среда, 4=четверг, 5=пятница и 6=суббота. [32]
1 января 1970 г. Эпоха Unix , используемая во времена POSIX , используемая Unix и Unix-подобными системами ( Linux , macOS , Android ) и языками программирования : большинство C / C++ , реализаций [33] Java , JavaScript , Perl , PHP , Python , Ruby , Tcl , ActionScript . Также используется протоколом точного времени .
1 января 1978 г. АмигаОС . [34] [номер 2] Аппаратные системы Commodore Amiga были представлены в период с 1985 по 1994 год. Последняя версия ОС 4.1 (декабрь 2016 г.). АРОС , МорфОС .
1 января 1980 г. IBM BIOS INT 1Ah, DOS , OS/2 , FAT12 , FAT16 , FAT32 , файловые системы exFAT , формат ZIP и производные IBM PC с его BIOS, а также 86-DOS , MS-DOS и PC DOS с файловой системой FAT12 были разработаны и представлены в период с 1980 по 1981 год.
6 января 1980 г. Qualcomm BREW , GPS , ATSC 32-битные метки времени GPS считает недели (неделя начинается с воскресенья), а 6 января — первое воскресенье 1980 года. [35] [36]
31 декабря 1989 г. Garmin FIT Эпоха. [37] Стандарт был разработан компанией Garmin как часть протокола FIT, который был принят многими в качестве фактического стандарта в индустрии фитнес-устройств. [38]
1 января 2000 г. AppleSingle , AppleDouble , [39] PostgreSQL , [40] [номер 3] Зигби UTCTime, [41] изобретательности Вертолет [42] Эта эпоха 2000 года [43] иногда используется, чтобы перенести проблему 2038 года на 2068 год, если процессор не поддерживает 64-разрядную версию.
1 января 2001 г. NSDate в Apple платформе Cocoa , NeXTSTEP Первый день третьего тысячелетия нашей эры

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. Перейти обратно: Перейти обратно: а б Пролептический григорианский календарь.
  2. ^ AmigaOS измеряет время в секундах и сохраняет его в виде 32-битного целого числа со знаком. После 19 января 2046 года, 03:14:07 дата будет отрицательной. В последней версии ОС 4.1 (2016 г.) эта проблема не исправлена.
  3. ^ Имейте в виду, что функция Epoch возвращает unix Epoch SELECT EXTRACT(EPOCH FROM TIMESTAMP With TIME ZONE '1970-01-01 00:00:00-00'); возвращает 0.
  1. ^ «[MS-DTYP]: ВРЕМЯ ФАЙЛА» . Документы Майкрософт . 2020-03-30.
  2. Перейти обратно: Перейти обратно: а б с Спольски, Джоэл (19 февраля 2008 г.). «Почему форматы файлов Microsoft Office такие сложные? (И некоторые обходные пути)» . Проверено 8 марта 2009 г.
  3. ^ Дершовиц, Нахум ; Рейнгольд, Эдвард (2008). Календарные расчеты (3-е изд.). Издательство Кембриджского университета . стр. XXI, XXVI. ISBN  978-0-521-70238-6 .
  4. ^ Субирана, Дж. Санс; Зорноза, Дж. М. Хуан; Эрнандес-Пахарес, М. (2011). «Привязки времени в ГНСС» . gssc.esa.int/navipedia . Европейское космическое агентство.
  5. ^ «Описание временной шкалы GNSS Galileo» (PDF) . Управление ООН по вопросам космического пространства. 2016. Раздел 5д.
  6. ^ «datenum» , MathWorks, по состоянию на 7 июля 2015 г.
  7. ^ «Класс григорианского календаря» . MSDN . Замечания . Проверено 26 апреля 2015 г.
  8. ^ « Структура DateTimeOffset » (.NET Framework 4.5), MSDN , 2015.
  9. ^ «Пакет времени» . golang.org . Проверено 26 апреля 2015 г.
  10. ^ «Дата — ссылка на z/OS TSO/E REXX» . IBM.com . ИБМ. 2014. СА32-0972-00.
  11. ^ Дершовиц, Нахум ; Рейнгольд, Эдвард (2008). «Григорианский календарь». Календарные расчеты (3-е изд.). Издательство Кембриджского университета. ISBN  978-0-521-70238-6 .
  12. ^ Коулишоу, Майк Фредерик (1990). Язык Rexx: практический подход к программированию (2-е изд.). Прентис Холл. стр. 93, 177. ISBN.  0-13-780651-5 .
  13. ^ «Примечания к выпуску Go 1 — Основные изменения в библиотеке — Время» . golang.org. 28 марта 2012 г. Проверено 26 апреля 2015 г.
  14. ^ «Форматы даты и времени» . IBM.com . ИБМ . Проверено 24 января 2020 г.
  15. ^ «CEEDATM — Преобразовать секунды в символьную метку времени» . Справочник по программированию языковой среды z/OS . ИБМ . 2021-03-22.
  16. ^ Руководство по программированию COBOL для AIX, версия 5.1 (PDF) (первое издание). ИБМ . Июнь 2015 г. CEEDATE — преобразовать дату Лилиан в символьный формат. SC27-5404-00.
  17. ^ Лич, П.; Миллинг, М.; Зальц, Р. (июль 2005 г.). «RFC 4122: Предлагаемый стандарт: пространство имен URN универсально уникального идентификатора (UUID)» . www.tools.ietf.org . Рабочая группа по интернет-инжинирингу.
  18. ^ ISO/IEC 1989:2014 - Информационные технологии. Языки программирования, их среды и интерфейсы системного программного обеспечения. Язык программирования COBOL . ИСО . 01.06.2014. п. 634.
  19. Перейти обратно: Перейти обратно: а б Чен, Раймонд (6 марта 2009 г.). «Почему эпоха Win32 приходится на 1 января 1601 года?» . Старая новая вещь . Блоги MSDN.
  20. ^ «Структура FILETIME (minwinbase.h)» . Документы Майкрософт .
  21. ^ «Что произошло в 1841 году?» . Часто задаваемые вопросы по M-технологиям и языку MUMPS, часть 1/2 . Архивировано из оригинала 28 августа 2015 г. Проверено 14 августа 2015 г.
  22. ^ Винклер, Гернот М.Р. «Модифицированная юлианская дата» . Военно-морская обсерватория США . Архивировано из оригинала 14 февраля 2013 г. Проверено 29 января 2015 г.
  23. ^ «Происхождение базового времени VMS» . vms.tuwien.ac.at/info/humour . Венский технологический университет. Архивировано из оригинала 6 июня 2007 г.
  24. ^ «Введение в API Google Таблиц» . Разработчики Google .
  25. ^ «Номер Международного дня» . help.dyalog.com . Проверено 27 ноября 2018 г.
  26. ^ «Тайм-менеджмент» . msdn.microsoft.com .
  27. ^ «Что стоит за 30 декабря 1899 года как базовой датой?» . Social.msdn.microsoft.com . [ постоянная мертвая ссылка ]
  28. Перейти обратно: Перейти обратно: а б Джон Барнс . «7.3 Время и даты» . Обоснование Ada 2005. Ассоциация ресурсов Ada.
  29. ^ «Даты и время в Excel» . cpearson.com .
  30. ^ «MacTech – Журнал технологий Apple» . mactech.com .
  31. ^ «Введение в даты и время в SAS» (PDF) .
  32. ^ Марк Пик, Международная конференция по спектру, апрель 2010 г.
  33. ^ «time_t — Справочник по C++» . Проверено 6 апреля 2015 г.
  34. ^ Бартель, Олаф (сентябрь 1998 г.). «Файл: Проблема 2000 года и Amiga» . амига.де .
  35. ^ Левин, Иуда (5 июля 2002 г.). «Распределение времени и частоты с помощью спутников» (PDF) . Отчеты о прогрессе в физике . 65 (8): 1119. Бибкод : 2002РПФ...65.1119Л . doi : 10.1088/0034-4885/65/8/201 – через Национальный институт стандартов и технологий (NIST).
  36. ^ «Системы времени и даты – время GPS» . Отдел океанографии НПС . Военно-морская аспирантура, кафедра океанографии. Архивировано из оригинала 02 января 2019 г. Проверено 18 февраля 2019 г.
  37. ^ «FIT SDK — Работа со значениями даты и времени» . garmin.com. 01.01.2023 . Проверено 25 февраля 2023 г.
  38. ^ «Гибкая и совместимая передача данных — протокол FIT» . garmin.com. 01.03.2019 . Проверено 25 февраля 2023 г.
  39. ^ «Форматы AppleSingle/AppleDouble для иностранных файлов. Примечание разработчика» (PDF) . Архивировано из оригинала (PDF) 17 июля 2011 г. Проверено 23 октября 2007 г.
  40. ^ «Документация PostgreSQL 9.1.24. Глава 8: Типы данных. 8.5. Типы даты/времени» . PostgreSQL.org . 27 октября 2016 г. Примечание. Когда значения временных меток хранятся в виде восьмибайтовых целых чисел (в настоящее время используется по умолчанию), точность в микросекундах доступна для всего диапазона значений. […] Значения временных меток сохраняются в секундах до или после полуночи 01.01.2000.
  41. ^ «Спецификация кластерной библиотеки ZigBee» . Раздел 2.5.2.21 UTCTime.
  42. ^ Лаборатория реактивного движения НАСА [@NASAJPL] (04.05.2021). «Сила сильна с этим малышом» ( Твит ) – через Твиттер .
  43. ^ «NeoGPS/src/NeoTime.cpp в мастере · SlashDevin/NeoGPS» . Гитхаб . Проверено 5 ноября 2023 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 48d405b037a93b9d67eed7bad797722f__1715443500
URL1:https://arc.ask3.ru/arc/aa/48/2f/48d405b037a93b9d67eed7bad797722f.html
Заголовок, (Title) документа по адресу, URL1:
Epoch (computing) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)