소개
Java 의 LocalDate 클래스는 시간대 (time-zone) 없이 날짜를 나타내기 위해 Java 8 에 도입되었습니다. 이 클래스는 날짜 객체에 대해 일, 월, 년을 더하거나 빼는 등 다양한 연산을 수행하는 여러 메서드를 제공합니다. 이러한 유용한 메서드 중 하나는 특정 시간대를 기반으로 현재 날짜를 반환하는 now(ZoneId) 메서드입니다.
Java 의 LocalDate 클래스는 시간대 (time-zone) 없이 날짜를 나타내기 위해 Java 8 에 도입되었습니다. 이 클래스는 날짜 객체에 대해 일, 월, 년을 더하거나 빼는 등 다양한 연산을 수행하는 여러 메서드를 제공합니다. 이러한 유용한 메서드 중 하나는 특정 시간대를 기반으로 현재 날짜를 반환하는 now(ZoneId) 메서드입니다.
~/project 디렉토리에 LocalDateNowZoneId.java라는 새 Java 파일을 생성합니다.
cd ~/project
touch LocalDateNowZoneId.java
LocalDate 클래스와 ZoneId 클래스를 사용하려면 java.time.LocalDate 및 java.time.ZoneId 패키지를 임포트해야 합니다.
import java.time.LocalDate;
import java.time.ZoneId;
기본 시스템 시간대로 현재 날짜를 가져오려면 LocalDate 클래스의 now() 메서드를 사용할 수 있습니다. 또한, 기본 시스템 시간대를 얻기 위해 ZoneId의 systemDefault() 메서드를 사용합니다.
LocalDate localDate = LocalDate.now(ZoneId.systemDefault());
System.out.println("Current date with default system time-zone: " + localDate);
특정 시간대로 현재 날짜를 얻고 싶다면, now() 메서드에 시간대를 인수로 전달할 수 있습니다. 이 예제에서는 "Asia/Tokyo" 시간대를 전달하여 도쿄 시간대의 현재 날짜를 얻습니다.
LocalDate localDate = LocalDate.now(ZoneId.of("Asia/Tokyo"));
System.out.println("Current date in Tokyo time-zone: " + localDate);
사용 가능한 시간대를 표시하려면 ZoneId 클래스의 getAvailableZoneIds() 메서드를 사용할 수 있습니다.
System.out.println("Available time-zones:");
ZoneId.getAvailableZoneIds().forEach(System.out::println);
터미널에서 javac 및 java 명령을 사용하여 코드를 컴파일하고 실행할 수 있습니다.
javac LocalDateNowZoneId.java
java LocalDateNowZoneId
이 랩에서는 Java LocalDate의 now(ZoneId) 메서드를 사용하여 지정된 시간대 (time-zone) 의 시스템 시계에서 현재 날짜를 얻는 방법을 배웠습니다. 또한 사용 가능한 시간대를 얻는 방법과 코드에서 이러한 시간대를 사용하는 방법을 배웠습니다.