2012-04-16 3 views
1

RSS 피드에서 태그를 구문 분석하는 중에 문제가 발생했습니다. 월, 나는 트릭을 수행하는 기능 parseDate을 만들어 16시 42분 30초 0000RSS 피드에서 Android 구문 분석 pubDate 태그

2012 4월 16일하지만, 사실은 그것은 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()); 
     //... 
관련 문제