【发布时间】:2015-09-04 20:51:12
【问题描述】:
我将下一个 dateTime 表示为字符串:"2015-08-21T22:00:00Z",如果我尝试使用 SimpleDateFormat 解析它而不设置时区,我会收到奇怪的值:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
sdf.parse("2015-08-21T22:00:00Z") // Fri Aug 21 22:00:00 CEST 2015
它似乎忽略了 Z - UTC 指示符。 另一方面,当我设置 GMT 时区时,一切都按预期工作:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
sdf.setTimeZone(TimeZone.getTimeZone("GMT"))
sdf.parse("2015-08-21T22:00:00Z") // Sat Aug 22 00:00:00 CEST 2015
为什么它以这种方式工作?为什么我需要为 SimpleDateFormat 设置时区,即使该字符串包含 UTC 指示符?
【问题讨论】:
-
@Tunaki:这实际上是答案。随意发布它:-)。
标签: java date simpledateformat