java.time
오래된 골칫거리 날짜 - 시간 라이브러리는 나중에 자바 8에 내장 된 java.time 프레임 워크에 의해 대체되었다. Java 6 & 7의 경우 백 포트 인 ThreeTen-Backport를 사용하고 안드로이드의 경우 ThreeTenABP를 사용하십시오. 이전 java.util.Date/.Calendar 등은 사용하지 마십시오.
LocalDate
java.time 클래스는 시간의 일없이 시간대없이 날짜 만 값 LocalDate
을 포함한다.
java.sql.Date
희망 JDBC 드라이버는 java.time 유형과 직접 거래 업데이트됩니다. 그때까지 java.sql 유형을 사용하여 데이터베이스에서 데이터를 이동하거나 이동합니다. 오래된 자바.sql 클래스는 새로운 to…
및 valueOf
메서드를 사용하여 java.time으로 변환합니다. 여기에 우리의 관심은 java.sql.Date
입니다.
LocalDate localDate = myJavaSqlDate.toLocalDate();
다른 방향으로 이동하여 데이터베이스에 제출할 수 있습니다.
java.sql.Date myJavaSqlDate = java.sql.Date.valueOf(localDate);
문자열을 생성 논의 된 날짜 클래스 (java.util.Date, java.sql.Date, java.time.LocalDate)의
없음은 "형식"가 없습니다. 값의 텍스트 표현 만 형식을 갖습니다. String이 필요하면이 클래스는 String 객체를 생성 할 수있다. 그러나 String 객체와 날짜 - 시간 객체는 완전히 별개이며 별개이므로 이들 객체와 날짜 객체를 혼동하지 마십시오.
LocalDate
의 toString
방법은 2012-07-04
(2012 년 7 월 4 일을 의미)과 같은 표준 ISO 8601 형식을 사용합니다.
String outputIso8601 = localDate.toString();
다른 형식의 경우 DateTimeFormatter
을 사용하십시오. 스택 오버플로에 대한 다른 많은 질문과 대답에는 더 많은 논의가 있습니다.
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
String output = localDate.format(formatter); // Generates a textual representation of the object’s date-only value.
더 나은 점은 java.time이 현지화되어 있습니다.
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT);
formatter = formatter.withLocale(Locale.CANADA_FRENCH); // or Locale.US, and so on.
String output = localDate.format(formatter);
소개 java.time은
java.time 프레임 워크는 나중에 자바 8에 내장되어 있습니다. 이러한 클래스는 java.util.Date
, Calendar
, & SimpleDateFormat
과 같이 번거로운 이전 legacy 날짜 - 시간 클래스를 대체합니다.
maintenance mode에있는 Joda-Time 프로젝트는 java.time 클래스로의 마이그레이션을 권장합니다.
자세히 알아 보려면 Oracle Tutorial을 참조하십시오. 그리고 많은 예제와 설명을 위해 스택 오버플로를 검색하십시오. 사양은 JSR 310입니다.
java.time 개체를 데이터베이스와 직접 교환 할 수 있습니다. JDBC 4.2 이상을 준수하는 JDBC driver을 사용하십시오. 문자열이 필요 없으며 java.sql.*
클래스가 필요하지 않습니다.
어디에서 java.time 클래스를 얻을 수 있습니까?
ThreeTen-Extra 프로젝트는 추가 클래스와 java.time를 확장합니다. 이 프로젝트는 향후 java.time에 추가 될 수있는 가능성을 입증합니다. 여기에 Interval
, YearWeek
, YearQuarter
및 more과 같은 유용한 클래스가 있습니다.
FYI, [java.util.Date'] (https://docs.oracle.com/javase/9/docs/api/java/util/Date.html)와 같은 번거로운 이전 날짜 시간 클래스 , ['java.util.Calendar'] (https://docs.oracle.com/javase/9/docs/api/java/util/Calendar.html),'java.text.SimpleDateFormat'은 이제 [유산 ] (https://en.wikipedia.org/wiki/Legacy_system), [* java.time *] (https://docs.oracle.com/javase/9/docs/api/java/time/)을 대신합니다. package-summary.html) Java 8 및 Java 9에 내장 된 클래스. [* Tutorial * by Oracle] (https://docs.oracle.com/javase/tutorial/datetime/TOC.html)을 참조하십시오. –