2017-07-02 189 views
1

這是DateTime的有效ISO 8601表示嗎?ISO 8601日期時間表示

20170704T09:30:00 + 0530

即是否可以使用兩者的基本和擴展格式的組合?還是應該只能爲這些:

20170704T093000 + 0530
2017-07-04T09:30:00 + 05:30

回答

1

In Wikipedia,它說,組合的日期和時間表示可以是基本格式或擴展格式,但日期和時間必須使用相同的格式

ISO 8601中,沒有提及混合表示 - 請參閱4.3.2中的示例。雖然我找不到關於混合格式的明確聲明,但在我看來,您不能在同一表示中混合使用基本格式和擴展格式。

話雖這麼說,我會說,像20170704T09:30:00+0530的格式爲在ISO 8601的有效

+0

也就是它更好地使用rfc3339即擴展ISO 8601,而不是僅僅是基本的8601的日期時間表示? –

+0

我認爲這取決於您正在使用的應用程序所接受的格式。實際上,RFC 3339是[ISO 8601「擴展名」](https://stackoverflow.com/a/522281/7605325),它接受日期和時間的完整表示,而ISO本身更加靈活。您必須檢查系統的要求並相應地進行選擇。 – 2017-07-02 13:00:47

0

雖然ISO6801-2004不允許混合基本和擴展交涉,有一個在2004年的修訂沒有條款那會明確禁止這一點。

該問題將在ISO8601 [1]的下一版本中得到解決,該版本最終包含有效時間戳語法的Backus-Naur表單定義。

(* 4.3.2 Complete representations *) 
dateTimeOfDayBasic = calendarDateBasic, "T", timeCompleteBasic, 
        [ "Z" | UTCoffsetBasic ] ; 
dateTimeOfDayExt = calendarDateExt, "T", timeCompleteExt, 
        [ "Z" | UTCoffsetExt ] ; 

[1]草案2016年10月26日:https://www.loc.gov/standards/datetime/ISO_DIS%208601-1.pdf

相關問題