Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SimpleDataFormat在某些android版本上不起作用_Java_Android_Simpledateformat - Fatal编程技术网

Java SimpleDataFormat在某些android版本上不起作用

Java SimpleDataFormat在某些android版本上不起作用,java,android,simpledateformat,Java,Android,Simpledateformat,我必须阅读以下格式的日期Sat,2013年1月19日00:00:00+0100 我的格式化程序是 SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z"); 当我要设置数据时: try { myObject.setEndDate(format.parse(currentValue)); } catch (ParseException e) { // TODO Auto-genera

我必须阅读以下格式的日期Sat,2013年1月19日00:00:00+0100
我的格式化程序是

SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z");
当我要设置数据时:

try {
    myObject.setEndDate(format.parse(currentValue));
} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
如果我在简单的java项目或Nexus和Htc上使用它,这将非常有效,但当我连接到调试器三星s3时,它会给出解析器异常

我希望它能在所有版本的android和手机上运行

SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss.SSSZ");

尝试以下操作:

在catch中打印
currentValue
,以及
Locale.getDefaultLocale()
。很可能是区域设置阻止了对currentValue的解析


至少你可以在PC上使用完全相同的参数来尝试代码。

我通过在try catch中不使用简单的日期格式来计算日期来解决这个问题 当在某些手机上运行时,它并没有捕获和格式工作良好,而在其他手机上运行时,它捕获但日期计算良好

   if(localName.equals("startDate") && currentValue!=null){

    try {
        myObject.setStartDate(format.parse(currentValue));
    } catch (ParseException e) {
        String  dates [] = currentValue.split(" ");
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(dates[1]));
        cal.set(Calendar.YEAR, Integer.parseInt(dates[3]));
        cal.set(Calendar.MONTH, StaticDataUtils.months.get(dates[2]));
        String hours [] = dates[4].split(":");
        cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(hours[0]));
        cal.set(Calendar.MINUTE, Integer.parseInt(hours[1]));
        myObject.setStartDate(cal.getTime());
        e.printStackTrace();
    }

异常的堆栈跟踪是?你不认为异常消息有助于诊断问题是什么吗?当我检查它时,它用try-catch来表示它只是解析器错误(就在连接s3时,nexus和emulator工作正常)你正在打印堆栈跟踪。那么,什么是印刷品?粘贴完整准确的堆栈跟踪。当我检查e时,我有java.text.parseReception,但它不会显示任何堆栈,2013年1月19日00:00:00+0100,就像这看起来是我的日期,所以我不必放置。在s之后。SSSZ是什么意思?@RalucaGurau你仍然得到异常?是的,当我检查e时,我有java.text.parseReception,但它没有任何堆栈