2014-11-09 3 views
0

이상한 문제가 있습니다. 아래 코드는 while 루프에서 몇 번 실행됩니다. 이제는 모든 sdf.parse가 시간, 분 및 초에 대해 0을 반환합니다. 날짜의 예는 다음과 같습니다.SimpleDateFormat 시간이 없음

2014:3:7:8:0 
2014:3:7:9:0 
2014:3:7:10:0 
2014:3:7:11:0 
2014:3:7:12:0 * This returns 0's 
2014:3:7:13:0 
2014:3:7:14:0 

아래 코드는 다음과 같습니다.

SimpleDateFormat sdf = new SimpleDateFormat("yyyy:M:d:h:m"); 
sdf.setTimeZone(TimeZone.getDefault()); 
Date sTime = null; 
try { 
    sTime = sdf.parse(start); 
} catch (ParseException e) { 
    e.printStackTrace(); 
    return null; 
} 
+1

[오류 변환 구문 분석 시간 dd.MM.yyyy ', '12 : 00] (http://stackoverflow.com/questions/22346705/error-converting-parsing-time-dd-mm-yyyy- 1200). 게시하기 전에 StackOverflow를 검색하십시오. 코드와 비교하고 문제를 찾기 위해 수백 가지 코드 예제를 발견했을 것입니다. –

답변

2

내가 12 시간 형식으로 읽어지고 시간 위치에서 12 생각, 그래서 0 패턴에 H 대신 h 시도로이 동일

SimpleDateFormat sdf = new SimpleDateFormat("yyyy:M:d:H:m"); 
+0

당신은 남자입니다! 8 분 안에 답변으로 받아 들일 것입니다;) 감사합니다. – lostdev

+0

도와 줘서 고맙습니다. :) –

2

'시간은'1에서 시간을 나타냅니다 12 포맷. 0-23 형식을 원하면 'H'(대문자)를 사용해야합니다. 또한 기본적으로 TimeZone.getDefault()와 같기 때문에 명시 적으로 기본 시간대를 설정할 필요가 없습니다.