Розробники · Unix timestamp конвертер
ISO 8601 проти RFC 3339: два формати дати за вашими API Відповіді
· Підземелля
Опубліковано ToolAcre · Редакція журналу
частампи апо-8601 свінгери

Більшість API, які вимагають використання ISO 8601 і власне використання RFC 3339, строгий профіль, призначений для інтернету. Цей пост пояснює два документи, їх відмінності, і як вони відносяться до цілих епоха.
’ ’ISO 8601' поле, яка відхиляє дійсність ISO 8601 — дата тижня або скорочена вартість, відправлена до API що очікується RFC 3339
Анжела API поле описано випадковим чином як "ISO 8601” може приймати тільки одну денну форму. Відправлення інших стандартів-відповідача може бути недійсним. Засіб не сперечатися з ім'я парасольки, це документувати точну граматику дроту з прикладами і тестами валідації.
ToolAcre сприяє стабільному канонічному виході з `Date.toISOString()`, але це невідповідна люкс для кожного представництва. Порада створеного рядка як однієї корисної зміни форми і порівняти його з API договір, який ви насправді.
Таким чином, слід публікувати формальний вираз або формальний тип тільки якщо він точно відображав парсер. Приклади поодинці є корисними, але виразні випадки відторгнення близькій неоднозначності.
Широка дата стандарт і вузька API граматика не взаємозамінна
Згенерована форма містить дату календаря, `T`, час через мілісекунди і причіп Z. Відправлення дзвінків ISO 8601 (UTC) в УІ. Вхід приймає, що JavaScript Дата читання, в тому числі явний офсет та форма безсоння місцевого пікера.
Ця поведінка набагато вузька, ніж повний стандартний parser. Терміни тижня, інтервали, тривалість і зменшення точності не мають репозиторійних тестів. Вказаний на одному браузері дата не гарантується через мови, а відхилена спеціалізована форма не відхиляє її стоячи в іншому місці.
Фіксована точність виходу - це вибір форматування, не свідчить про те, що джерело вимірюється мілісекунди. Дата може отримати повну вартість і ще друк `.000`.
ToolAcre випромінює один ISO-формна форма; не вдається в повній мірі ISO 8601 стандарт
У робочій книзі характеризується RFC 3339, її рік і обов'язкові правила офсету. Ні RFC текст або виділений парсер існує в початковому комплекті, тому ці особливості не стверджуються. Авторський договір вимагає від непідтримуваної точності, а не цитування назви з пам'яті.
Якщо ви хочете API за допомогою RFC 3339, ім'я його в схемі і тест на виконання, задану в фактичній специфікації. ToolAcre може мост відомий епох до його UTC ISO вихід для порівняння, але не можна засвідчувати, що довільний вхід задовольняє цей профіль.
Це редакційно-інжинірингова охорона: профілі стандартів є точними договорами, а також пошук їх без вимог до зміни тексту в документації.
RFC 3339 Вимоги потребують джерела зовнішніх стандартів, які не присутні в цьому репозиторію
Клейми про чергування сепараторів, нижкових конструкторів та `−00:00` залежить від конкретної мови стандартів. Випробувано тут. Конвертер власної зони детектор визнає причіп Z або numeric `±HH:MM` і прапори безсоніжних дата-times як локальний; це межа ми можемо перевірити.
Почати API валідація з явно прийнятих прикладів і випадків відмови. Не вводити дозволу JavaScript Дата зручність парсера. Покірний браузер може нормалізувати вхід, який суворий сервер правильно відхиляє, приховуючи дефекти міжоперабельності під час ручного тестування.
Присвячується генератору, що відповідає критеріям помилок. Дати нормалізувати загальний вхід може перетворити API усунення несправностей в пізній перехресний диск.
Специфіка сепаратора і невідомі правила випаровування без стандартного тексту
Epoch значення роблять арифметичне і замовляючи компактне при установці і походження. Текстові дати-times роблять UTC або зміщення читання видимих для людей і збереження цього конструктора в транзиті. Багато API вибирають один канонічний рядок, щоб уникнути JavaScript ціле або блок неоднорідності.
Якщо API Визначте, що поле є авторитетною та тестовою угодою. Стійка відформатована рядок біля свіжого епоху гірше, ніж окремо. ToolAcre може порівняти пару шляхом перетворення цілого і перевірки створеного ISO значення, але виконання консистенцій належить виробника.
Приклад роботи: один миттєвий, чотири уявлення — епоха секунд, епоха мілісекунди, RFC 3339 рядок в UTC і один з локальним офсетом
Використовуйте миттєвий `2025-02-03T10:22:00.000Z`. Його епоха форми є 1,738,578,120 секунди і 1,738,578,120,000 мілісекунди. Читання явного зміщення `2025-02-03T12:22:00+02:00`; розпарювання його в ToolAcre повертає ту ж епоху і канонічного UTC ISO ряд.
Це чотири репозиторійно-відкладні уявлення: секунди, мілісекунди, доІОСТРінг вихід і дата-парсований номерично-офсетний рядок. Приклад не стверджує, що кожен зовнішній парсер приймає однакову дробову точність або зсувний синтаксис. Запуск APIВласна перевірка перед доставкою.
Відстеження +02:00 офсет з письмових годинникових врожаїв 10:22 UTC. Проста рівність достатньо перевірити цей конкретний вхід без узагальнення повної стандартної граматики.
Зароблений приклад: один миттєвий у чотирьох формах цей репозиторій може перевірити
HTTP Заголовки та дата електронної пошти використовують текстові договори, які не реалізовані тут. ToolAcre не форматувати ці протоколи, а не пообіцяти його ISO вихід можна замінити. Ми можемо самі зателефонувати одержувачу.
Зберігайте послідовність протоколу в виділених адаптерах з фіксаторами, що скопіюються з авторитетних специфікацій. Використовуйте епоху перетворення, щоб перевірити основну миттєвість, потім перевірити граматику окремо. Це запобігає встановленню календарно-коректного значення з проходження рецензування в неоднорідному конверті.
Прийнятий перехідник також повинен зберігати, чи відсутній або невідомий офсет зберігає значення домену. Розгортання кожної текстової дати в місцеве припущення може знищити цю інформацію.
Інші текстові протоколи залишаються поза конвертерами
Вкажіть вузький формат API приймається замість перекриття на широкому етикетці. Для цього інструмента для безпечного відтворювального виведення є UTC ISO рядок повертається `toISOString()`, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
ToolAcre міст тих форм і звітів. Не варто приділяти всім ISO 8601 або RFC 3339 крайні випадки. Очистити володіння граматикою, блоком і зоною конструктора є те, що робить часові запаси переносними - не прикріплюєте звичне ім'я до підвиданого поля.
Точний договір дозволяє клієнтам не раніше отримувати корисні повідомлення. Широкий етикеток відштовхує незгоду в режимі runtime, де два інші правильні парсери можуть вибрати різні підсети.