2011-02-16 29 views
1

为什么followng上Android 2.2的失败,任何想法...的Android的SimpleDateFormat无法解析日期时间(在太阳1.6 JRE正常工作)

java.text.ParseException:无法解析日期:2011-02-16 11:38 :03.328 UTC

...而它工作正常在太阳JRE 1.6?

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S z"); 
    try 
    { 
     Date date = dateFormat.parse("2011-02-16 11:38:03.328 UTC"); 
    } 
    catch (ParseException e) 
    { 
     e.printStackTrace(); 
    } 

如前所述离子注释,可以使测试更简单:

new SimpleDateFormat("z").parse("UTC") 

这将引发分析异常。我使用的是Nexus One的设备,Android 2.2的

+0

您的代码运行对我来说没编译针对Android的`罐子1.5`。你用什么进口上述课程?您是在设备还是仿真器上运行? – 2011-02-16 12:54:06

+0

在一个设备上运行。进口如你所料 – user508047 2011-02-18 09:33:24

+0

实际上可以使测试更简单。 新的SimpleDateFormat(“Z”)。分析(“UTC”) UTC似乎并没有被支持,这是非常令人惊讶的 ...抛出的Andriod 2.2的例外,但不能在标准太阳JRE – user508047 2011-02-18 09:34:26

回答

2

使用这个代替

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS z"); 
0

尝试指定这样的语言环境:

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S z", Locale.ENGLISH); 
0

我抄这个代码,并得到了铸造例外...

试试我的

java.text.SimpleDateFormat format = new SimpleDateFormat(
        "dd-MM-yyyy"); 
      java.util.Calendar cal = Calendar.getInstance(new SimpleTimeZone(0, 
        "GMT")); 
      format.setCalendar(cal); 
java.util.Date date = null; 
      try { 
       date = format.parse(EditProfile.dateOFBirth); 
      } catch (ParseException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
验证码

我希望这可以帮助您

1

我现在一个解决办法:

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S 'UTC'"); 
try 
{ 
    Date date = dateFormat.parse("2011-02-16 11:38:03.328 UTC"); 
} 
catch (ParseException e) 
{ 
    e.printStackTrace(); 
} 

这让我至少解析日期的Android 2.2。我的应用程序已被修改为尝试 “YYYY-MM-DD HH:MM:SS.S 'UTC'”,然后尝试 “YYYY-MM-DD HH:MM:SS.S Z” 如果第一个解析失败

感谢所有的答案

相关问题