有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

SimpleDataFormat在Java和Android中是否有所不同?

我在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");

但在安卓系统中我得到了例外

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

怎么了


共 (2) 个答案

  1. # 1 楼答案

    问题是,如果默认区域设置为英语,代码将正确执行,否则将引发异常。您可以通过添加正确的区域设置来解决此问题

    //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设备可能有不同的语言设置。考虑使用常量区域设置作为注释中的RC,在这种情况下,您不需要额外的变量,在构造函数中直接使用常量。p>

  2. # 2 楼答案

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

    例如,如果设备上的区域设置为德语,则在解析此日期时,将执行代码:

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