DateTime ISO 8601没有时区组件

Dev*_*vin 14 datetime localization iso8601

我一直在为国际应用程序解析日期时间字符串.我遇到了一个解释问题,我似乎无法找到明确的答案. 是否应将没有时区组件的ISO 8601日期时间字符串视为本地时间?

每个维基百科(我不想根据我的业务决策):

如果没有给出具有时间表示的UTC关系信息,则假定时间是在本地时间.

但是,我无法通过ISO或任何其他普遍接受的事实来源找到支持文档.我发现的所有内容都谈到了如何处理当地时间的偏移(例如+/- 0500等).假设这些情况下的当地时间对我有很大帮助,因为我的用户可以为所有区域提交相同的日期,而无需计算每个区域的特定偏移量.

例如:

2012-01-01T00:00:00 # Convert to local
2012-01-01T00:00:00Z # Zulu/UTC...don't convert
Run Code Online (Sandbox Code Playgroud)

对于无时区的ISO 8601字符串,是否有既定的解释?

Joh*_*136 12

ISO 8601的4.2.2节给出了没有TZ指示符的例子,说它们是当地时间.4.2.4说UTC时间使用'Z'指示符.当然它总是提出"当地时间在哪里?"的问题......

如果根据4.2.2.2到4.2.2.4使用当地时间,则区域指示符为空,如果根据4.2.4使用UTC的日期,则为UTC指示符[Z],这是区别-component如果使用本地时间,并且与UTC的差异符合4.2.5.2.