Продолжительность 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