我有以下日期字符串来自 android 应用程序中的 grails 服务。
2015-01-13T10:24:55Z
现在我想使用 SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssz");
解析这个字符串
但我在 logcat 中收到错误后的错误。
01-13 10:53:50.674: W/System.err(1794): java.text.ParseException: Unparseable date: "2015-01-13T10:24:55Z" (at offset 10)
请告诉我如何解析这种类型的字符串。
最佳答案
当前您正在使用“常规时区”说明符。为了将 Z
解释为“该值采用 UTC”,您应该使用 X
:
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX", Locale.US)
X
是 ISO-8601 时区说明符,其中包括表示 UTC 的 Z
。
或者,您可以将其作为文字引用并明确指定时区为 UTC:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'",
Locale.US);
format.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
在这种情况下,显式设置时区非常重要,否则将使用系统默认时区解析该值。
关于java - 如何在类型为2015-01-13T10 :24:55Z的java中使用SimpleDateFormat解析日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27920693/