1
는이 코드를 반환SimpleDateFormat의 구문 분석은 잘못된 값
public static String formatMinSecOrHourMinSec(final String length) {
try {
final SimpleDateFormat hhmmss = new SimpleDateFormat("HH:mm:ss", Locale.GERMAN);
final Date date = hhmmss.parse(length);
final GregorianCalendar gc0 = new GregorianCalendar(Locale.GERMAN);
gc0.setTime(date);
if(gc0.getTimeInMillis() >= 3600 * 1000){
return hhmmss.format(gc0.getTime());
}else{
final SimpleDateFormat mmss = new SimpleDateFormat("mm:ss");
return mmss.format(gc0.getTime());
}
} catch (final ParseException e) {
LOGGER.debug("Konnte die Länge nicht parsen: " + length + "\n" + e);
return length;
}
}
나는 그것이 length
이 1시 29분 0초로 설정되어 1시 29분 0초 경우 반환 것으로 추정하지만 29 반환 00. gc0.getTimeInMillis()
이 예상보다 1 시간 적은 (3600 * 1000)을 반환하기 때문입니다. 내가 도대체 뭘 잘못하고있는 겁니까 ?
gc0.getTimeInMillis()을 예상보다 (* 1000 3600) 일시간 적은 반환합니다. 귀하의 진술에 따라 귀하의 상태가 거짓이며 당신이 얻는 것은 정확합니다. –
시간대에 문제가 있거나 없을 수도 있습니다. 'Locale.German'에서 시간을로드하고 있습니다 만 밀리 초 단위의 시간은 1-1-1970 UTC (GMT) 자정에 상대적인 오프셋으로 반환됩니다. 이것은 예기치 않은 시간 오프셋의 원인 일 수 있습니다. 확실히 당신이 고려해야 할 것이 있습니다. – Caleryn