>  기사  >  Java  >  Java 11의 새로운 OffsetDateTime 클래스 및 ZoneOffset 클래스를 사용하여 오프셋으로 날짜 및 시간 처리

Java 11의 새로운 OffsetDateTime 클래스 및 ZoneOffset 클래스를 사용하여 오프셋으로 날짜 및 시간 처리

王林
王林원래의
2023-07-31 18:17:301028검색

Java 11의 새로운 OffsetDateTime 클래스 및 ZoneOffset 클래스를 사용하여 오프셋이 있는 날짜 및 시간을 처리합니다.

인용문:
Java 11에는 시간대 오프셋이 있는 날짜 및 시간을 처리하는 새로운 OffsetDateTime 클래스 및 ZoneOffset 클래스가 도입되었습니다. 이러한 클래스는 더 많은 유연성과 기능을 제공하므로 개발자는 다양한 시간대의 날짜와 시간을 더 잘 처리할 수 있습니다.

  1. OffsetDateTime 클래스 소개
    OffsetDateTime 클래스는 Java 8에 도입된 날짜 및 시간 API의 일부입니다. 이는 시간대 오프셋을 사용하여 날짜 및 시간을 나타냅니다. 여기에는 날짜, 시간 및 시간대 오프셋 정보가 포함됩니다. OffsetDateTime 클래스는 변경할 수 없으며 정적 팩토리 메소드 of()를 통해 인스턴스를 생성할 수 있습니다. 예:
OffsetDateTime offsetDateTime = OffsetDateTime.of(2022, 1, 1, 12, 0, 0, 0, ZoneOffset.ofHours(8));

위 코드에서는 2022년 1월 1일 12:00:00을 나타내는 OffsetDateTime 인스턴스를 생성하고 다음을 지정합니다. +8시간의 시간대 오프셋.

OffsetDateTime 클래스는 날짜, 시간 및 시간대 오프셋의 다양한 부분을 얻고 조작하는 일련의 메서드를 제공합니다. 예를 들어, getYear(), getMonth(), getDayOfMonth() 및 기타 메소드를 사용하여 날짜의 연도, 월, 일을 가져올 수 있습니다.

int year = offsetDateTime.getYear();
Month month = offsetDateTime.getMonth();
int dayOfMonth = offsetDateTime.getDayOfMonth();
  1. ZoneOffset 클래스 소개
    ZoneOffset 클래스는 날짜의 일부입니다. 고정된 시간 간격으로 표현되는 시간대 오프셋을 나타내는 Java 8에 도입된 시간 API입니다. 오프셋은 UTC(협정 세계시)를 기준으로 하며 시간 단위로 측정됩니다. ZoneOffset 클래스는 변경할 수 없으며 정적 팩토리 메소드 ofHours() 또는 ofTotalSeconds()를 통해 인스턴스를 생성할 수 있습니다. 예:
ZoneOffset zoneOffset = ZoneOffset.ofHours(8);
ZoneOffset zoneOffset = ZoneOffset.ofTotalSeconds(28800);

위 코드에서 각각 +8시간과 +28800의 시간대 오프셋을 생성했습니다. 시간대 오프셋의 ZoneOffset 인스턴스(초)입니다.

ZoneOffset 클래스는 오프셋의 다양한 부분을 얻고 조작하는 일련의 메서드를 제공합니다. 예를 들어, getTotalSeconds() 메서드를 사용하여 오프셋의 총 초를 얻을 수 있습니다.

int totalSeconds = zoneOffset.getTotalSeconds();
  1. 샘플 코드
    다음은 OffsetDateTime 클래스와 ZoneOffset 클래스를 사용하여 시간대가 있는 날짜를 처리하는 방법을 보여주는 샘플 코드입니다. offsets 및 시간:
import java.time.OffsetDateTime;
import java.time.Month;
import java.time.ZoneOffset;

public class DateTimeExample {
    public static void main(String[] args) {
        OffsetDateTime offsetDateTime = OffsetDateTime.of(2022, 1, 1, 12, 0, 0, 0, ZoneOffset.ofHours(8));
        
        int year = offsetDateTime.getYear();
        Month month = offsetDateTime.getMonth();
        int dayOfMonth = offsetDateTime.getDayOfMonth();
        int hour = offsetDateTime.getHour();
        int minute = offsetDateTime.getMinute();
        int second = offsetDateTime.getSecond();
        
        System.out.println("Year: " + year);
        System.out.println("Month: " + month);
        System.out.println("Day of Month: " + dayOfMonth);
        System.out.println("Hour: " + hour);
        System.out.println("Minute: " + minute);
        System.out.println("Second: " + second);
        
        ZoneOffset zoneOffset = ZoneOffset.ofHours(8);
        int totalSeconds = zoneOffset.getTotalSeconds();
        
        System.out.println("Total Seconds: " + totalSeconds);
    }
}

출력 결과:

Year: 2022
Month: JANUARY
Day of Month: 1
Hour: 12
Minute: 0
Second: 0
Total Seconds: 28800

위 예제 코드에서는 먼저 2022년 1월 1일 12:00:00을 나타내는 OffsetDateTime 인스턴스를 생성하고 다양한 부분(년, 월, 일, 시, 분, 초). 그런 다음 +8시간 시간대 오프셋을 나타내는 ZoneOffset 인스턴스를 생성하고 오프셋의 총 초를 얻었습니다.

결론:
Java 11의 OffsetDateTime 클래스와 ZoneOffset 클래스를 사용하면 시간대 오프셋을 사용하여 날짜와 시간을 더 잘 처리할 수 있습니다. 이러한 클래스는 개발자가 날짜, 시간 및 시간대 오프셋의 다양한 부분을 쉽게 얻고 조작할 수 있도록 하는 풍부한 함수 및 메서드 세트를 제공합니다. 개발자는 이러한 클래스를 사용하여 실제 필요에 따라 다양한 시간대의 날짜와 시간을 처리하여 코드의 가독성과 유지 관리성을 향상시킬 수 있습니다.

위 내용은 Java 11의 새로운 OffsetDateTime 클래스 및 ZoneOffset 클래스를 사용하여 오프셋으로 날짜 및 시간 처리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.