java - Java 和 Android 中的 SimpleDateFormat 有何不同?

标签 java android simpledateformat

我在 Java 中使用下面的代码并且工作完美!

SimpleDateFormat format = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z");
Date date = format.parse("Sun, 11 May 2014 23:11:51 +0430");

但在 Android 中我遇到了异常!

java.text.ParseException: Unparseable date: "Sun, 11 May 2014 23:11:51 +0430" (at offset 0)

怎么了?!

最佳答案

问题是如果默认语言环境是英语,代码将正确执行,否则将抛出异常。您可以通过添加正确的区域设置来解决该问题。

//Locale locale = new Locale("en-US");  
Locale locale = Locale.US;  
SimpleDateFormat format = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z", locale);
Date date = format.parse("Sun, 11 May 2014 23:11:51 +0430");

Android 设备可能有不同的语言设置。考虑使用常量 Locale,如注释中所述的 RC,在这种情况下,您不需要额外的变量,直接在构造函数中使用常量。

关于java - Java 和 Android 中的 SimpleDateFormat 有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27324527/

相关文章:

java - java中SimpleDateFormat中不同时间的字符串日期到日期

java - 如何在 Spring Boot 中将带有自定义消息的 SOAP 请求和响应记录到文件中?

Java 电子邮件解析器

java - 从 UI 线程调用 GattCallback 中的函数

android - 显示 youtube 视频时 Webview 崩溃

java.text.ParseException : Unparseable date: "-"

java - 多线程java应用程序中的奇怪行为(没有锁的死锁?)

java - 持续的消费者群体重新平衡,消费者多于分区

javascript - HTML5 Canvas 支持和 Android Webview

java - 日期从一种格式解析为另一种格式