날짜

2016-12-17 4 views
0

나는이 날짜 시간 구문 분석하려고 threeten 구문 분석 방법 :날짜

DateTimeFormatter dateTimeFormatter = new DateTimeFormatterBuilder() 
        .appendPattern("dd/MM/yyyy hh:mm:ss") 
        .parseDefaulting(ChronoField.SECOND_OF_MINUTE, 0) 
        .parseDefaulting(ChronoField.MILLI_OF_SECOND, 0) 
        .toFormatter(); 

      String ultimaAtualizacaoTexto = "17/12/2016 01:41:43"; 

      LocalDateTime ultimaAtualizacaoDateTime = 
        LocalDateTime.parse(ultimaAtualizacaoTexto, dateTimeFormatter); 

을하지만이 오류가 점점 오전 :

DateTimeParseException: Text '17/12/2016 01:41:43' could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor: DateTimeBuilder[fields={MilliOfSecond=0, MinuteOfHour=41, MicroOfSecond=0, NanoOfSecond=0, HourOfAmPm=1, SecondOfMinute=43}, ISO, null, 2016-12-17, null], type org.threeten.bp.format.DateTimeBuilder 

내가 무슨 일이 일어나고 있는지 모르겠습니다을 ... 그것은해야 완전히 일한다!

어떤 도움이 필요합니까? 어쨌든 고마워! HH 12 AM/PM 만이기 때문에 "SS 일/월/년의 HH : mm"

": mm SS DD/MM은 월/일 HH"로를

답변

1

그래서 ... 나는 변경했다 시간. HH는 24 시간입니다.

+0

이것은 매우 일반적인 오류입니다. 이 오류가 포함 된 SO 개의 게시물이 수없이 많습니다. Threeten이나 Java-8에 한정되지 않고'SimpleDateFormat'과'Joda-Time'에서도 공통적으로 사용됩니다. 어떤 사람들은 am/pm-marker를 사용하지 않고 "h"를 사용하여 (잘못된 데이터를 효과적으로 인쇄하는) 서식 지정에 문제가 있음을 알지 못하지만 잘못된 것은 모두 괜찮다고 생각합니다. 이로 인해 내 시간 라이브러리에 [패턴 온 전성 검사] (https://github.com/MenoData/Time4J/issues/565)를 구축하는 데 영감을 받았습니다. 다른 libs도 확실히 이러한 검사를 통해 이익을 얻을 수 있습니다. –