2015-10-13 63 views
6

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

wikipedia(我不希望我的基础业务决策关闭的):

如果没有UTC相关信息与时间表示给定的, 的时间被假定为本地时间。

但是,我无法通过ISO或任何其他普遍接受的事实来找到支持文档。我发现的一切都会谈到如何处理当地时间的偏移量(例如+/- 0500等)。假设在这些情况下的本地时间可以帮助我,因为我的用户可以提交所有地区的同一日期,而无需计算每个地区的具体偏差。

例如:

2012-01-01T00:00:00 # Convert to local 
2012-01-01T00:00:00Z # Zulu/UTC...don't convert 

有没有时区少ISO 8601个字符串建立解释?

回答

6

ISO 8601的4.2.2节给出了没有TZ标志的例子,他们说当地时间。 4.2.4表示UTC时间使用'Z'标志。当然,它总是会提出一个问题:“当地时间在哪里?”...

+0

太棒了,这就是我一直在寻找的东西。 ISO文档不是“公开”免费提供的,这是我第一次错过它的原因。无论如何,上帝保佑上传的人:) 在用户输入中有一个固有的属性来指定区域,所以“where”方面已经被处理。 – Devin

0

没有时区指示符,日期时间字符串将被解释为本地时间 - 但作为本地时间到服务器。

如果你的用户在不同的时区,他们提交的日期没有TZ信息将被你的本地TZ抵消错误地解释。