Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.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 Android解析RSS xml提要中的pubDate标记_Java_Android_Parsing_Rss_Feed - Fatal编程技术网

Java Android解析RSS xml提要中的pubDate标记

Java Android解析RSS xml提要中的pubDate标记,java,android,parsing,rss,feed,Java,Android,Parsing,Rss,Feed,我在解析RSS源中的标记时遇到问题 格式如下:2012年4月16日星期一16:42:30+0000 我创建了一个函数parseDate,该函数实现了这一功能,但事实是它使用Locale.US解析日期,该函数返回日期,但使用US Locale,因此它返回时间+2小时。如果我不提供Locale.US参数,我会得到一个ParseException 我如何才能完成正确的解析,以便提供的日期对于任何本地数据都是正确的 下面是函数: public String parseDate (String dater

我在解析RSS源中的标记时遇到问题

格式如下:2012年4月16日星期一16:42:30+0000

我创建了一个函数parseDate,该函数实现了这一功能,但事实是它使用Locale.US解析日期,该函数返回日期,但使用US Locale,因此它返回时间+2小时。如果我不提供Locale.US参数,我会得到一个ParseException

我如何才能完成正确的解析,以便提供的日期对于任何本地数据都是正确的

下面是函数:

public String parseDate (String dateraw){
        String returndate;

        try {String format = "EEE, dd MMM yyyy kk:mm:ss Z";
        SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy kk:mm:ss z",Locale.US);
        Date formatedDate = sdf.parse(dateraw);

        Calendar c= Calendar.getInstance();
        c.setTime(formatedDate);



        returndate=""+c.get(Calendar.DAY_OF_MONTH)+"/"+c.get(Calendar.MONTH)+"/"+c.get(Calendar.YEAR)+" "+c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE);
            return returndate;
        } catch (ParseException e) {
            e.printStackTrace();
            // TODO Auto-generated catch block
            return "NO DATE AVAILABLE";

        }
    }

您的代码运行良好。该日期已解析,不依赖于时区。 尝试打印当前时区或日历时区,看看是否正确:

        //...            
        Calendar c = Calendar.getInstance();
        c.setTime(formatedDate);
        Log.i(TAG, c.getTimeZone().getID());
        Log.i(TAG, TimeZone.getDefault().getID());
        //...