Продолжительность ISO 8601 с миллисекундами?
Как должна быть выражена продолжительность 500 миллисекунд с использованием ISO 8601? Для меня документация не 100% ясно. Это просто " PT0.5S"?
2 ответов
да.
я мог найти только старый черновик для 8601, но он явно выражен в дробном представлении:
5.5 периоды времени
5.5.1 означает указание периодов времени
период времени должен быть выражен одним из следующих способов:
a) как продолжительность, ограниченная определенным началом и определенным концом;
b) как продолжительность, выраженная в одном или нескольких конкретных компоненты, но не связанные с любым конкретным началом или концом;
c) как продолжительность, связанная с определенным началом;
d) как продолжительность, связанная с определенным концом.
5.5.2 разделители и указатели
Солидус [ / ] используется для разделения двух компонентов в каждом из пунктов 5.5.1 А), С) и d).
для пунктов 5.5.1 b), c) и d) обозначение [P] должно предшествовать без пробелов представление продолжительности.
другие обозначения (и дефис, используемый для обозначения опущенных компонентов) должны использоваться, как показано в 5.5.4 и 5.5.5 ниже.
и позже
5.5.3.1 формат с обозначениями единиц времени
In выражения периода времени или длительности повторяющегося интервала времени могут быть представлены элементом данных переменная длина. За числом лет следует обозначение [Y], количество месяцев на [M], количество недель на [W] и количество дней на [D]. Часть включению компонентов времени предшествует обозначение [T]; за ним следует число часов. на [H], количество минут на [M] и количество секунд на [S]. В примерах [n] представляет одну или несколько цифр, составляющих положительное целое число или ноль.
в полных представлениях формат должен быть nYnMnDTnHnMnS или nW.
для уменьшенной точности, десятичного или усеченного представления этого формата длительности следующие правила применить:
a) при необходимости для конкретного приложения компоненты самого низкого порядка могут быть опущены для представления продолжительность с уменьшенной точностью;
b) при необходимости для конкретного приложения компонент самого низкого порядка может иметь десятичную дробь. Этот десятичная дробь должна быть отделена от целочисленной части десятичным знаком указано в ISO 31-0: т. е. запятая [,] или полная остановка [.]. Из них предпочтительным знаком является запятая. Если величина числа меньше после единицы десятичный знак должен предшествовать нулю (см. ISO 31-0);
C) если количество лет, месяцев, дней, часов, минут или секунд в любом из этих выражений равна ноль, число и соответствующее обозначение могут отсутствовать; однако, по крайней мере, одно число и его обозначающий должен присутствовать. Заметить что удаление ведущих ненулевых компонентов не допускается;
d) обозначение T должно отсутствовать, если отсутствуют все временные компоненты.
все это согласуется со статьей Википедии, поэтому ISO-8601 длительностью 500 мс должен быть PT0,5S
или PT0.5S
поскольку ISO 8601 представляет собой дату и время, а не интервал, поэтому я предполагаю 500 мс с четверга, 1 января 1970 года (так же, как временная метка unix).
1970-01-01T00: 00: 00.5 Z
обновление: Да ' PT0.5S-это правильная интерпретация в соответствии с документацией, на которую вы ссылались. По-видимому, мой предыдущий ответ пропустил часть продолжительности в документации или может быть добавлен позже. Спасибо @strife25