2012-03-02 4 views
25

мне интересно, если следующая дата ISO8601 соответствует:В соответствии с ISO 8601, является ли символ T обязательным?

2012-03-02 14:57:05.456+0500 

(наверняка, 2012-03-02T14: 57: 05,456 + 0500 соответствует, но не так много человеческого читаемым!) IOW, является ли Т между датой и временем обязательным?

ответ

19

Требуется, если «партнеры по обмену информацией» не согласятся его опустить.

Цитируя ISO 8601 standard, раздел 4.3.2:

Символа [Т] должен быть использован в качестве временного обозначения для указания начала представления времени суток компоненты в этих выражений. [...]

ПРИМЕЧАНИЯ По взаимному согласию партнеров в обмене информации, характер [T] может быть опущен в приложениях, где нет рисков спутать дату и время дня представления с другими определены в этом Международном стандарте.

Опущение это довольно распространено, но его оставить целесообразным, если представление предназначено для машиносчитываемого и у вас нет четкого соглашения о его пропуске.

+1

Я просто нашел, что новая дата («2012-03-02T14: 57: 05») в JavaScript будет настроить время в соответствии с часовым поясом, в то время как новый Дата ("2012-03-02T14: 57: 05") НЕ будет корректировать время. – code4j

+9

@ code4j: Я что-то пропустил, или те же? –

+5

О, боже мой. Я забыл удалить букву Т. это должно быть: новый Дата ("2012-03-02T14: 57: 05"): отрегулируйте время в соответствии с часовым поясом, в то время как новая дата ("2012-03-02 14:57:05") НЕ будет корректировать время – code4j

7

Эта дата не является ISO-8601 соответствует, как указано Кит Томпсон, но это соответствует RFC 3339, профилем ISO 8601 Рода. Примечание в нижней части следующего текста из RFC 3339:

date-time  = full-date "T" full-time 

    NOTE: Per [ABNF] and ISO8601, the "T" and "Z" characters in this 
    syntax may alternatively be lower case "t" or "z" respectively. 

    This date/time format may be used in some environments or contexts 
    that distinguish between the upper- and lower-case letters 'A'-'Z' 
    and 'a'-'z' (e.g. XML). Specifications that use this format in 
    such environments MAY further limit the date/time syntax so that 
    the letters 'T' and 'Z' used in the date/time syntax must always 
    be upper case. Applications that generate this format SHOULD use 
    upper case letters. 

    NOTE: ISO 8601 defines date and time separated by "T". 
    Applications using this syntax may choose, for the sake of 
    readability, to specify a full-date and full-time separated by 
    (say) a space character.