전 세계 국가에서 사용할 웹 기반 시스템을 만들고 있습니다. 저장해야하는 한 가지 유형의 데이터는 날짜와 시간입니다.
Joda 시간 과 같은 타사 라이브러리와 비교하여 Java 날짜 및 시간 클래스 사용의 장단점은 무엇입니까 ? 나는 이러한 타사 라이브러리가 좋은 이유 때문에 존재한다고 생각하지만 실제로는 실제로 비교하지 않았습니다.
전 세계 국가에서 사용할 웹 기반 시스템을 만들고 있습니다. 저장해야하는 한 가지 유형의 데이터는 날짜와 시간입니다.
Joda 시간 과 같은 타사 라이브러리와 비교하여 Java 날짜 및 시간 클래스 사용의 장단점은 무엇입니까 ? 나는 이러한 타사 라이브러리가 좋은 이유 때문에 존재한다고 생각하지만 실제로는 실제로 비교하지 않았습니다.
답변:
편집 : 이제 Java 8이 릴리스되었으므로 사용할 수 있다면 그렇게하십시오! java.time
내 생각에 Joda Time보다 더 깨끗합니다. 그러나 Java-8 이전 버전이 붙어 있으면 계속 읽으십시오 ...
Max는 Joda 사용의 장단점을 요청했습니다 ...
장점 :
java.time
Java 8 학습 은 약간 유사하기 때문에 학습 을 시작할 수 있습니다.단점 :
DateTimeZoneBuilder
과거 에는 효과적으로 사용하지 못했습니다 . 이것은 매우 드문 사용 사례입니다.작은 API를 효과적으로 구축한다는 oxbow_lakes의 아이디어에 응답하기 위해 이것이 왜 나쁜 아이디어인지에 대한 나의 견해는 다음과 같습니다.
java.time.*
Java 6 및 7 에 대한 백 포트가 있습니다 . threeten.org/threetenbp
대답은 : 그것은 의존한다
JODA (및 JSR-310)는 여러 달력 시스템에서 사용할 수있는 기능을 포함하여 모든 기능을 갖춘 날짜 / 시간 라이브러리입니다.
개인적으로 JODA는 내가 필요로하는 복잡성 측면에서 너무 한 걸음 인 것으로 나타났습니다. 표준 Java Date
및 Calendar
클래스 에서 2 가지 주요 (IMHO) 실수는 다음 과 같습니다.
이것들은 JODA에 의해 다루어 지지만 실제 "calendrical"계산을 위해 자바 클래스를 사용하는 YearMonthDay
and Instant
에 대한 클래스를 롤링하는 것이 매우 쉽다는 것을 알 수 있습니다 . 그런 다음 100 개 이상의 클래스, 다른 형식 지정 / 구문 분석 메커니즘 등의 API를 익히지 않아도됩니다.
물론, 다른 연대기 (예 : 히브리어)를 완전히 표현해야하거나 자신의 가상 캘린더 시스템 (예 : 작성중인 게임)을 정의하려는 경우 JODA 또는 JRS-310이 적합합니다. 그렇지 않다면, 자신의 롤링이 가능할 것이라고 제안합니다.
JSR-310 스펙 리더는 1 위에 JODA를 작성한 Stephen Colebourne이므로 JODA를 논리적으로 대체 합니다.
다음과 같은 이유로 Joda-Time 라이브러리를 사용해야합니다.
Exception in thread "main"
org.joda.time.IllegalFieldValueException: Cannot parse "2014-02-31":
Value 31 for dayOfMonth must be in the range [1,28].
자세한 내용은이 페이지를 참조하십시오 : http://swcodes.blogspot.com/