2012-10-28 4 views
0

Eclipse 및 Android 버전을 API-15 (ICS)로 사용하여 Android 앱을 개발하고 있습니다.Java/Android : 이상한 날짜 구문 분석 문제가 있습니다.

날짜 개체에 문자열을 구문 분석하는 데 이상한 문제가 있습니다. 내 코드는 다음과 같습니다.

DateFormat df = new SimpleDateFormat("M/d/yyyy h:mm:ss a"); 
df.setTimeZone(TimeZone.getTimeZone("gmt")); 
String st = "1/1/1990 12:00:00 AM"; 

try { 
    Date dt = df.parse(st); 
     return dt; 
    } catch (ParseException e) { 
     return null; 
    } 

ParseException 오류가 계속 나타납니다. 날짜 문자열의 다양한 조합을 시도했지만 여전히 날짜 개체로 변환 할 수 없습니다.

또한 내 문자열에는 UTC로 된 날짜 + 시간이 포함되어 있으므로 새 날짜 개체는 UTC로 작성됩니다.

아무도 아이디어가 없습니까?

+0

아무런 예외가 없었습니다. 나를 위해 일하고. 'Mon Jan 01 05:30:00 IST 1990'이 o/p였습니다 –

+0

코드에 어떤 문제도 보이지 않습니다. 그것은 작동해야합니다. 기기 자체에 문제가 있으며 코드가 아닙니다. 에뮬레이터에서 실행 해 보셨습니까? 프로젝트에 대한 자세한 정보를 제공하십시오 : JAVA, 최소 최대 버전 API ..... 그리고 스택 추적을 게시하십시오. –

답변

0

예외가 발생합니다. 구문 분석 한 문자열이 사용자가 지정한 형식과 일치하지 않으므로 아래에서 설명하는대로 날짜 형식을 변경하십시오. 항상 2 자리 날짜 또는 시간 형식을 사용하는 것이 좋습니다.

DateFormat df = new SimpleDateFormat ("MM/dd/yyyy hh : mm : ss a");

0

"MM/dd/yyyy hh : mm : ss a"와 같이 두 자리 숫자로 표현하십시오. 나는이 코드를 가지고 있으며 내게 잘 작동한다.

SimpleDateFormat dfm = new SimpleDateFormat("yyyy-MM-dd"); 

        try { 

         date=dfm.parse(datestring);; 
        } catch (ParseException e) { 

         e.printStackTrace(); 
        } 
0

나는이 문제를 추적했다고 생각한다. 수입이 엉망 이었기 때문입니다. 모든 가져 오기를 제거하고 Eclipse의 구성 가져 오기 기능을 사용했습니다. 이제 더 이상 오류를주지 않습니다.

이전에 가져온 것이 코드가 lint에 의해 받아 들여 졌는지 궁금합니다. Java 및 Android에 의해 날짜를 처리하는 두 개의 다른 라이브러리가 있다고 생각합니다. 이제 필자는 날짜 만 Java 라이브러리 만 가져 왔습니다. 잘 작동합니다.

불편을 끼쳐 드려 죄송합니다.