ISO 8601

Перейти к навигацииПерейти к поиску
Объяснение ISO 8601 — все три показанные расширения действительны.
Дата и время, представленные в ISO 8601 [обновить]
Дата2024-09-27
Дата и время в UTC2024-09-27T01:51:04+00:00
2024-09-27T01:51:04Z
20240927T015104Z
Неделя 2024-W39
Неделя с днём недели 2024-W39-5
Дата без года --09-27[1]
Порядковая дата 2024-271

ISO 8601 — международный стандарт, выпущенный организацией ISO (International Organization for Standardization), который описывает форматы дат и времени и даёт рекомендации для его использования в международном контексте. Название нормы — Data elements and interchange formats — Information interchange — Representation of dates and times.

История

Первая редакция стандарта ISO 8601 была опубликована в 1988 году и объединила и заменила собой целый ряд более старых стандартов ISO, касавшихся представления даты и времени: ISO 2014, 2015, 2711, 3307 и 4031. В 2000 году стандарт был заменён второй редакцией и, позднее, в 2004 году, — третьей редакцией ISO 8601:2004 (англ.), опубликованной 3 декабря 2004 года. В 2019 вышла новая редакция формата ISO 8601-1:2019 и ISO 8601-2:2019, заменившая ISO 8601:2004[2].

Основные принципы

Значения даты и времени расположены в порядке от более к менее значимому. Каждое число (год, месяц, день, время) записывается с фиксированным числом знаков и, при необходимости, должно быть дополнено до него ведущими нулями. Например, время «7:40» должно быть записано как «07:40». В результате для каждого из ряда форматов дат и времен лексикографический порядок соответствует хронологическому, с исключением для отрицательных лет.

Представление может быть в одном из двух форматов: простом формате с минимальным числом символов, или расширенном формате с разделителями, добавляемыми для удобочитаемости. Стандарт разрешает использование дефиса между элементами даты и двоеточия между часами, минутами и секундами. Расширенные форматы, как правило, предпочтительнее простых из-за того, что некоторые простые форматы неоднозначны.

От даты и времени можно отбросить любое число полей, но менее значимые поля обязательно должны быть отброшены раньше более значимых. Например, «2004-05» это корректная дата, означающая май 2004. При этом, такое обозначение по стандарту не может трактоваться как 5-е число неизвестного месяца 2004 года.

Кроме того, стандарт поддерживает добавление десятичной точки к наименьшей единице времени, когда требуется большая точность. При этом допустимо представление с десятичной точкой в сокращённых форматах времени, то есть T13:23,5 эквивалентно T13:23:30. Стандарт не позволяет использовать представление с десятичной точкой для дат.

Указания времени с часовым поясом, представляющие один и тот же момент времени: "18:30Z", "22:30+04", "1130−0700".

В роли разделителя целой и дробной части могут использоваться символы запятой «,» или точки «.» Из них запятая предпочтительнее.

Наиболее распространённые форматы

ФорматПримерОписание Примечание
YYYY-MM2005-08август 2005 года
YYYYMMDD200508099 августа 2005 года
YYYY-MM-DD2005-08-099 августа 2005 года
hhmm183118 часов 31 минутаМаска формата времени hhmm (4.2.2.3 p. a) совпадает с сокращенным представлением даты YYYY (4.1.2.3 p. b) — \d{4}. Для избежания путаницы стандартом предложены две стратегии:
  • Явно обозначать локальное время, используя префикс T, например T1831 (4.2.2.5).
  • Использовать расширенное представление года ±YYYYY по условиям соглашения*, например +002005 (4.1.2.4 p. c).

* Обменивающиеся стороны должны согласовать дополнительное количество цифр в элементе времени «год». В примере выше согласовано добавление двух цифр.

hh:mm18:3118 часов 31 минута
hhmmss18314218 часов 31 минута 42 секунды
hh:mm:ss18:31:4218 часов 31 минута 42 секунды
±hh+03UTC+03 часаВ редакции ISO 8601:2004 отмечено:

«Expressions of the difference between local time and UTC of day are a component in the representations defined in 4.2.5.2; they shall not be used as self-standing expressions»

(перевод: «Разница между местным временем и UTC являются компонентом представления времени и не должна использоваться в качестве самостоятельного выражения»).

Маске \+\d{4,} кроме +hhmm (4.2.5) соответствует формат даты +YYY (4.1.2.4 p. d).

-03UTC-03 часа
±hhmm+0330UTC+03 часа 30 минут
-0330UTC-03 часа 30 минут
±hh:mm+03:30UTC+03 часа 30 минут
-03:30UTC-03 часа 30 минут
hhmmss±hh183142+0318 часов 31 минута 42 секунды UTC+03 часа
183142-0318 часов 31 минута 42 секунды UTC-03 часа
hh:mm:ss±hh18:31:42+0318 часов 31 минута 42 секунды UTC+03 часа
18:31:42-0318 часов 31 минута 42 секунды UTC-03 часа
hhmmss±hhmm183142+033018 часов 31 минута 42 секунды UTC+03 часа 30 минут
183142-033018 часов 31 минута 42 секунды UTC-03 часа 30 минут
hh:mm:ss±hh:mm18:31:42+03:3018 часов 31 минута 42 секунды UTC+03 часа 30 минут
18:31:42-03:3018 часов 31 минута 42 секунды UTC-03 часа 30 минут
YYYYMMDDThhmmss20050809T1831429 августа 2005 года 18 часов 31 минута 42 секунды
YYYY-MM-DDThh:mm:ss2005-08-09T18:31:429 августа 2005 года 18 часов 31 минута 42 секунды
YYYYMMDDThhmmss±hh20050809T183142+039 августа 2005 года 18 часов 31 минута 42 секунды UTC+03 часа
20050809T183142-039 августа 2005 года 18 часов 31 минута 42 секунды UTC-03 часа
YYYY-MM-DDThh:mm:ss±hh2005-08-09T18:31:42+039 августа 2005 года 18 часов 31 минута 42 секунды UTC+03 часа
2005-08-09T18:31:42-039 августа 2005 года 18 часов 31 минута 42 секунды UTC-03 часа
YYYYMMDDThhmmss±hhmm20050809T183142+03309 августа 2005 года 18 часов 31 минута 42 секунды UTC+03 часа 30 минут
20050809T183142-03309 августа 2005 года 18 часов 31 минута 42 секунды UTC-03 часа 30 минут
YYYY-MM-DDThh:mm:ss±hh:mm2005-08-09T18:31:42+03:309 августа 2005 года 18 часов 31 минута 42 секунды UTC+03 часа 30 минут
2005-08-09T18:31:42-03:309 августа 2005 года 18 часов 31 минута 42 секунды UTC-03 часа 30 минут
YYYY-MM-DDThh:mm:ss.sss2005-08-09T18:31:429 августа 2005 года 18 часов 31 минута 42 секунды
2005-08-09T18:31:42.2019 августа 2005 года 18 часов 31 минута 42 секунды 201 миллисекунда

Примеры

2005-08-09T18:31:42/P3Y6M4DT12H30M17S
отрезок времени в 3 года 6 месяцев 4 суток 12 часов 30 минут и 17 секунд, начиная с 9 августа 2005 года 18 часов 31 минуты 42 секунд
P1D
продолжительность длиной 1 сутки (24 часа)

Примечания

  1. последний раз была в ISO 8601:2000, использовала RFC 6350 - vCard Format Specification. IETF (август 2011). — «Truncated representation, as specified in [ISO.8601.2000], Sections 5.2.1.3 d), e), and f), is permitted.» Дата обращения: 21 января 2021. Архивировано 31 мая 2016 года., хотя удалено в ISO 8601:2004
  2. ISO 8601-1:2019 (англ.). International Organization for Standardization. Дата обращения: 27 февраля 2019. Архивировано 27 февраля 2019 года.

Ссылки