2012-04-16 6 views
1

RSSフィードからタグを解析する際に問題が発生しています。RSSフィードからのAndroid解析のpubDateタグ

形式は、このようなものです:月、2012年4月16日夜四時42分30秒0000

私はトリックを行う機能はparsedataを作成したが、実際は、それはLocale.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"; 

     } 
    } 

答えて

0

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

 //...    
     Calendar c = Calendar.getInstance(); 
     c.setTime(formatedDate); 
     Log.i(TAG, c.getTimeZone().getID()); 
     Log.i(TAG, TimeZone.getDefault().getID()); 
     //... 
関連する問題