java - 异常不可解析的日期

标签 java android

 SimpleDateFormat readDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
    String dtc = "2014-03-27T11:31:42.798Z";

            Date date = null;
                try {
                    date = readDate.parse(dtc);
                } catch (ParseException e) {
                    Log.d("myLog", "dateExcep " + e);
                }

try{} catch{} 有异常:03-27 16:29:48.459: D/myLog(19388): dateExcep java.text.ParseException: 无法解析的日期:“2014-03-27T11:31:42.798Z” (在偏移量 23 处)

最佳答案

格式模式中的 Z 是问题所在。它代表 RFC 822 时区,不能只是 Z。如果您的输入始终采用 UTC,您可以使用:

// The Z is now quoted as a literal.
SimpleDateFormat readDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
readDate.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));

请注意,在此处设置时区非常重要,否则系统会假定该值位于您当前的系统时区。

"normal" Java 7您可以使用 X 来代替表示 ISO-8601 时区偏移说明符,但这在 Android SimpleDateTime 中不受支持。现在。

关于java - 异常不可解析的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22688378/

相关文章:

android - 如何将卡与禁用的 FAB 重叠?

java - 如何正确打包maven多模块?

java - JFrame.setVisible(true) 不断迭代其父方法,直到发生 stackOverflowError

android - 通过 JNI 从 C++ 发送 Intent

android - 在 AsyncTask 中获取 TextView - Android

android - 如何在 tabview 中滚动标签

java - Java RSA 中来自字符串的键

java - jrebel 排除文件 ( messages.properties )

java - 从网络驱动器加载图像?

java - Android 拆分安装错误(-2) : Module_Unavailable Error