ISO 8601

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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 года.

Основные принципы[править | править исходный текст]

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

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

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

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

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

Наиболее распространённые форматы[править | править исходный текст]

Формат Пример Описание
YYYY-MM 2005-08 август 2005 года
YYYYMMDD 20050809 9 августа 2005 года
YYYY-MM-DD 2005-08-09 9 августа 2005 года
hhmm 1831 18 часов 31 минута
hh:mm 18:31 18 часов 31 минута
hhmmss 183142 18 часов 31 минута 42 секунды
hh:mm:ss 18:31:42 18 часов 31 минута 42 секунды
±hh +03 UTC+03 часа
-03 UTC-03 часа
±hhmm +0330 UTC+03 часа 30 минут
-0330 UTC-03 часа 30 минут
±hh:mm +03:30 UTC+03 часа 30 минут
-03:30 UTC-03 часа 30 минут
hhmmss±hh 183142+03 18 часов 31 минута 42 секунды UTC+03 часа
183142-03 18 часов 31 минута 42 секунды UTC-03 часа
hh:mm:ss±hh 18:31:42+03 18 часов 31 минута 42 секунды UTC+03 часа
18:31:42-03 18 часов 31 минута 42 секунды UTC-03 часа
hhmmss±hhmm 183142+0330 18 часов 31 минута 42 секунды UTC+03 часа 30 минут
183142-0330 18 часов 31 минута 42 секунды UTC-03 часа 30 минут
hh:mm:ss±hh:mm 18:31:42+03:30 18 часов 31 минута 42 секунды UTC+03 часа 30 минут
18:31:42-03:30 18 часов 31 минута 42 секунды UTC-03 часа 30 минут
YYYYMMDDThhmmss 20050809T183142 9 августа 2005 года 18 часов 31 минута 42 секунды
YYYY-MM-DDThh:mm:ss 2005-08-09T18:31:42 9 августа 2005 года 18 часов 31 минута 42 секунды
YYYYMMDDThhmmss±hh 20050809T183142+03 9 августа 2005 года 18 часов 31 минута 42 секунды UTC+03 часа
20050809T183142-03 9 августа 2005 года 18 часов 31 минута 42 секунды UTC-03 часа
YYYY-MM-DDThh:mm:ss±hh 2005-08-09T18:31:42+03 9 августа 2005 года 18 часов 31 минута 42 секунды UTC+03 часа
2005-08-09T18:31:42-03 9 августа 2005 года 18 часов 31 минута 42 секунды UTC-03 часа
YYYYMMDDThhmmss±hhmm 20050809T183142+0330 9 августа 2005 года 18 часов 31 минута 42 секунды UTC+03 часа 30 минут
20050809T183142-0330 9 августа 2005 года 18 часов 31 минута 42 секунды UTC-03 часа 30 минут
YYYY-MM-DDThh:mm:ss±hh:mm 2005-08-09T18:31:42+03:30 9 августа 2005 года 18 часов 31 минута 42 секунды UTC+03 часа 30 минут
2005-08-09T18:31:42-03:30 9 августа 2005 года 18 часов 31 минута 42 секунды UTC-03 часа 30 минут
YYYY-MM-DDThh:mm:ss[.mmm] 2005-08-09T18:31:42 9 августа 2005 года 18 часов 31 минута 42 секунды
2005-08-09T18:31:42.201 9 августа 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 часа)

Ссылки[править | править исходный текст]

См. также[править | править исходный текст]