2017-07-02 92 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