ISO 8601 и RFC 3339 кажутся двумя форматы, которые являются общими для Интернета. Должен ли я использовать один над другим? Это просто расширение? Мне действительно нужно заботиться о том, что плохо?
Какая разница между форматами даты ISO 8601 и RFC 3339?
Ответ 1
Это просто расширение?
В значительной степени, да - RFC 3339 указан как профиль ISO 8601. В частности, RFC 3339 требует полного представления даты и времени (только дробные секунды являются необязательными). В RFC также есть небольшие, тонкие различия. Например, усеченные представления лет с двумя цифрами не допускаются - для RFC 3339 требуются 4-значные годы, а RFC допускает использование символа периода в качестве десятичной точки для дробных секунд. RFC также позволяет заменить "T" на пробел (или другой символ), в то время как стандарт только позволяет его исключить (и только тогда, когда существует согласие между всеми сторонами, использующими представление).
Я не стал бы слишком беспокоиться о различиях между этими двумя, но по независящим от вас случай использования, вам стоит подумать:
Ответ 2
RFC 3339 является главным образом профилем ISO 8601, но на самом деле не согласуется с ним при заимствовании спецификации часового пояса "-00: 00" из RFC 2822. Это описано в статье в Википедии.
Ответ 3
Вам не должно быть так много заботы. RFC 3339, по его словам, представляет собой набор стандартов, полученных из ISO 8601. Тем не менее, есть несколько минутных различий, и все они изложены в RFC 3339. Я мог бы пройти через все они здесь, но вы, вероятно, просто прочитав документ для себя в случае, если вы беспокоитесь: