>source

내 어댑터 클래스입니다.

public class LocalDateTimeAdapter extends XmlAdapter<String, LocalDateTime> {
    @Override
    public LocalDateTime unmarshal(String v) throws Exception {
        return new LocalDateTime(v);
    }
    @Override
    public String marshal(LocalDateTime v) throws Exception {
        return v.toString();
    }
}

이는 날짜를 저장하고자하는 객체 클래스입니다.

@XmlAccessorType(XmlAccessType.FIELD)
    public class Object {
    @XmlJavaTypeAdapter(LocalDateTimeAdapter.class)
    private LocalDateTime time;
    public LocalDateTime getTime() {
            return time;
    }

어떤 이유로 나는 그것을 컴파일 할 수 없다. 그것은 문제가 있다는 것을 보여줍니다새로운 LocalDateTime (V)을 반환합니다....에 그리고 이것은 내가 얻는 오류입니다.

Error:(9, 16) java: constructor LocalDateTime in class java.time.LocalDateTime cannot be applied to given types;
      required: java.time.LocalDate,java.time.LocalTime
      found: java.lang.String
      reason: actual and formal argument lists differ in length

및 XML 부분 :

<time type="dateTime">2000-01-01T19:45:00Z</time>

나는 다음과 같습니다.

이 질문은 오래되었지만, 어쨌든 물어볼 것입니다. 자세한 내용은 LocalDateTime을 사용하고자합니까? 내가 묻는 이유는 XML 스 니펫이 시간대 (Zulu의 경우 짧은 Zulu의 짧은 Zulu, 기본적으로 GMT 용 닉네임)가 포함되어 있으며 LocalDateTime에는 시간대 정보가 포함되어 있지 않습니다. 나는 궁금해합니다 : LocalDateTime 대신 zonedatetime을 사용하는 것이 더 적합합니까?

Greg Hadaller2021-04-20 03:01:26
  • 답변 # 1

    아마 당신이 사용하고 있습니다localdatetime Java 8 에서이 클래스는 문자열을위한 생성자가 아닙니다.

    다음 예제에서

    ​​jodatime ...에

    그래서이 작업을 수행 할 수 있습니다.

    • 가져 오기org.joda.time.localdateTime.(당신은 조드타임 의존성이 필요합니다) 대신java.time.localDateTime.;

    • 또는 변경unmarshal.이와 같은 방법 :

      @Override
      public LocalDateTime unmarshal(String v) throws Exception {
          return LocalDateTime.parse(v);
      }
      

    기본값은 형식이므로 다음과 같이 알려야 할 수 있습니다.2011-12-03T10 : 15 : 30., 어쩌면 이것 :

    @Override
    public LocalDateTime unmarshal(String v) throws Exception {
        return LocalDateTime.parse(v, DateTimeFormatter.ISO_INSTANT);
    }
    

    또한,java.time.localDateTime.다음 ISO-8601 형식 중 하나를 출력합니다.

    • uuuu-mm-dd't'hh : mm
    • uuuu-mm-dd't'hhh : mm : ss
    • uuuu-mm-dd't'hh : mm : ss.sss
    • uuuu-mm-dd't'hhh : mm : ss.sssssss
    • uuuu-mm-dd't'hh : mm : ss.ssssssssss

    나는 LocalDateTime을 리턴하는 경우, 궁금해합니다 .Parse (v.substring (0, v.length-1)); 그것은뿐만 아니라 그것의 차이점이 무엇인가?

    itVico2021-04-19 09:44:38

    마샬링과 미심이 모두에서 동일한 패턴을 보장 할 수 있습니다.

    Bruno César2021-04-19 09:44:38

    BTW는 DateTimeFormatter.iso_date_time에서 작동하지만 DateTimeFormatter.ISO_INSTANT를 사용하지는 않습니다. 어떻게 왔니?

    itVico2021-04-19 09:44:38

    어쩌면 '입력 형식의 원인이 될 수 있습니다. DateTimeFormatter 에서이 상수의 형식을 볼 수 있습니다.

    Bruno César2021-04-19 09:44:38
  • 이전 Jenkins Pipeline-Github 플러그인이있는 멀티 브랜치 파이프 라인 : 첫 번째 실행에 대한 제한
  • 다음 build : Ninja를 사용하여 UWP 앱을 작성하십시오.