1

RSS フィードからのタグの解析に問題があります。

フォーマットは次のようになります: Mon, 16 Apr 2012 16:42:30 +0000

私はこのトリックを行う関数parseDateを作成しましたが、実際には Locale.US を使用して日付を解析します。これは日付を返しますが、US ロケールを使用しているため、時間 +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";

        }
    }
4

1 に答える 1

0

あなたのコードは正常に動作します。日付は解析され、タイムゾーンに依存しません。現在のタイムゾーンまたはカレンダーのタイムゾーンを印刷して、それが正しいかどうかを確認してください。

        //...            
        Calendar c = Calendar.getInstance();
        c.setTime(formatedDate);
        Log.i(TAG, c.getTimeZone().getID());
        Log.i(TAG, TimeZone.getDefault().getID());
        //...
于 2012-11-21T14:30:34.153 に答える