В чем разница между форматами даты ISO 8601 и RFC 3339?

ISO 8601 и RFC 3339 Кажется, два формата, которые являются общими для интернета. Должен ли я использовать одно над другим? Это просто продолжение? Мне действительно нужно так сильно переживать?

4 ответов


это просто расширение?

в значительной степени, да - RFC 3339 указан как профиль ISO 8601. В частности, RFC 3339 требует полное представление даты и времени (только частичные секунды опционные). Стандарт также имеет некоторые небольшие, тонкие различия. Например, усеченные представления лет только с двумя цифрами не допускаются - RFC 3339 требует 4-значные годы, и RFC позволяет использовать только символ периода как десятичная точка для дробных секунд. RFC также позволяет заменить "T" пробелом (или другим символом), в то время как стандарт позволяет его опустить (и только тогда, когда есть соглашение между всеми сторонами, использующими представление).

Я бы не слишком беспокоился о различиях между ними, но на случай, если ваш вариант использования столкнется с ними, вам стоит взглянуть на:


RFC 3339 в основном является профилем ISO 8601, но на самом деле не согласуется с ним в заимствовании спецификации часового пояса "-00:00" из RFC 2822. Об этом говорится в статье Википедии.


вы не должны заботиться, что много. RFC 3339, согласно самому себе, представляет собой набор стандартов, полученных из ISO 8601. Однако есть довольно много минутных различий, и все они изложены в RFC 3339. Я мог бы просмотреть их все здесь, но вам, вероятно, лучше просто прочитать документ для себя в случае, если вы беспокоитесь:

http://www.ietf.org/rfc/rfc3339.txt


'2018-03T13:24: 59.321 T'

'2018-03T13:24: 59.321 T'

по крайней мере одна разница