Java 8에는 java.time 패키지 아래에 새로운 시간 및 날짜 API 세트가 포함되어 있습니다. 다음은 Java 8의 새로운 기능 날짜 API에 대한 관련 지식을 설명하기 위해 예제를 사용합니다. 관심 있는 친구들은 함께 살펴보세요
Java 8에는 java.time 패키지 아래에 새로운 시간 및 날짜 API 세트가 포함되어 있습니다. 다음 예는 이 새로운 API 세트의 가장 중요한 부분 중 일부를 보여줍니다.
1.Clock Clock 클래스는 현재 날짜 및 시간에 액세스하는 방법을 제공하며 시간대를 구분하며 시스템을 대체하는 데 사용할 수 있습니다. currentTimeMillis()를 사용하여 현재 마이크로초 수를 가져옵니다. 특정 시점은 Instant 클래스를 사용하여 나타낼 수도 있으며, 이는 이전 java.util.Date 객체를 생성하는 데에도 사용할 수 있습니다.
Clock clock = Clock.systemDefaultZone(); long millis = clock.millis(); Instant instant = clock.instant(); Date legacyDate = Date.from(instant); // legacy java.util.Date
2. 시간대 시간대
새 API에서 시간대는 ZoneId로 표시됩니다. 시간대는 정적 방법을 사용하여 쉽게 얻을 수 있습니다. 시간대는 UTS 시간과의 시차를 정의하며 인스턴트 시간 개체와 현지 날짜 개체 간에 변환할 때 매우 중요합니다.
System.out.println(ZoneId.getAvailableZoneIds()); // prints all available timezone ids ZoneId zone1 = ZoneId.of("Europe/Berlin"); ZoneId zone2 = ZoneId.of("Brazil/East"); System.out.println(zone1.getRules()); System.out.println(zone2.getRules()); // ZoneRules[currentStandardOffset=+01:00] // ZoneRules[currentStandardOffset=-03:00]
3.LocalTime 현지 시간
LocalTime은 오후 10시 또는 17:30:15와 같이 시간대 정보가 없는 시간을 정의합니다. 다음 예제에서는 이전 코드에서 생성된 시간대를 사용하여 두 개의 현지 시간을 생성합니다. 그런 다음 시간을 비교하고 두 시간 사이의 시간 차이를 시간과 분 단위로 계산합니다.
LocalTime now1 = LocalTime.now(zone1); LocalTime now2 = LocalTime.now(zone2); System.out.println(now1.isBefore(now2)); // false long hoursBetween = ChronoUnit.HOURS.between(now1, now2); long minutesBetween = ChronoUnit.MINUTES.between(now1, now2); System.out.println(hoursBetween); // -3 System.out.println(minutesBetween); // -239
LocalTime localTime= LocalTime.of(23, 59, 59); System.out.println(localTime); // 23:59:59 DateTimeFormatter germanFormatter = DateTimeFormatter .ofLocalizedTime(FormatStyle.SHORT) .withLocale(Locale.GERMAN); LocalTime leetTime = localTime.format(germanFormatter); System.out.println(leetTime);
4.LocalDate 현지 날짜
LocalDate는 2014-03-11과 같은 정확한 날짜를 나타냅니다. 객체 값은 변경할 수 없으며 사용법은 기본적으로 LocalTime과 동일합니다. 다음 예에서는 Date 객체에 일/월/년을 더하고 빼는 방법을 보여줍니다. 또한 이러한 객체는 변경할 수 없으며 작업은 항상 새 인스턴스를 반환합니다.
LocalDate today = LocalDate.now(); LocalDate tomorrow = today.plus(1, ChronoUnit.DAYS); LocalDate yesterday = tomorrow.minusDays(2); LocalDate independenceDay = LocalDate.of(2014, Month.JULY, 4); DayOfWeek dayOfWeek = independenceDay.getDayOfWeek(); System.out.println(dayOfWeek); // FRIDAY
DateTimeFormatter germanFormatter = DateTimeFormatter .ofLocalizedDate(FormatStyle.MEDIUM) .withLocale(Locale.GERMAN); LocalDate xmas = LocalDate.parse("24.12.2014", germanFormatter); System.out.println(xmas); // 2014-12-24
5.LocalDateTime 현지 날짜 및 시간
LocalDateTime은 시간과 날짜를 모두 나타냅니다. 처음 두 섹션 내용이 하나의 개체로 병합됩니다. LocalTime 및 LocalDate와 마찬가지로 LocalDateTime은 변경할 수 없습니다. LocalDateTime은 특정 필드에 액세스하는 몇 가지 방법을 제공합니다.
LocalDateTime sylvester = LocalDateTime.of(2014, Month.DECEMBER, 31, 23, 59, 59); DayOfWeek dayOfWeek = sylvester.getDayOfWeek(); System.out.println(dayOfWeek); // WEDNESDAY Month month = sylvester.getMonth(); System.out.println(month); // DECEMBER long minuteOfDay = sylvester.getLong(ChronoField.MINUTE_OF_DAY); System.out.println(minuteOfDay); // 1439
Instant instant = sylvester .atZone(ZoneId.systemDefault()) .toInstant(); Date legacyDate = Date.from(instant); System.out.println(legacyDate); // Wed Dec 31 23:59:59 CET 2014
DateTimeFormatter formatter = DateTimeFormatter .ofPattern("MMM dd, yyyy - HH:mm"); LocalDateTime parsed = LocalDateTime.parse("Nov 03, 2014 - 07:13", formatter); String string = formatter.format(parsed); System.out.println(string); // Nov 03, 2014 - 07:13
위 내용은 Java 8의 새로운 기능인 날짜 API의 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!