PHpullh
학습 라이브러리/Java/날짜/시간 API (java.time)

JAVA · 기초 문법

날짜/시간 API (java.time)

Java 8+의 java.time 패키지로 날짜와 시간을 안전하게 다룹니다.

기초 문법중급java.timeLocalDateDateTimeFormatter날짜

핵심 설명

Java 8+의 java.time 패키지로 날짜와 시간을 안전하게 다룹니다.

Java code

import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;

public class DateTimeDemo {
    public static void main(String[] args) {
        // 현재 날짜/시간
        LocalDate today = LocalDate.now();
        LocalTime now = LocalTime.now();
        LocalDateTime dateTime = LocalDateTime.now();
        ZonedDateTime zoned = ZonedDateTime.now(ZoneId.of("Asia/Seoul"));

        // 생성 및 조작 (불변)
        LocalDate birthday = LocalDate.of(2000, 1, 15);
        LocalDate nextMonth = today.plusMonths(1);
        LocalDate lastYear = today.minusYears(1);

        // 차이 계산
        long days = ChronoUnit.DAYS.between(birthday, today);
        Period period = Period.between(birthday, today);
        System.out.printf("%d년 %d개월 %d일%n",
            period.getYears(), period.getMonths(), period.getDays());

        // 포맷팅
        DateTimeFormatter fmt =
            DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 (E)");
        System.out.println(today.format(fmt));
    }
}

학습 팁

java.time 클래스는 모두 불변(immutable)이고 스레드 안전합니다. Date/Calendar 대신 사용하세요.

주의할 점

LocalDateTime은 시간대 정보가 없습니다. 글로벌 서비스에서는 ZonedDateTime이나 Instant를 사용하세요.

자주 묻는 질문

날짜/시간 API (java.time)란 무엇인가요?

Java 8+의 java.time 패키지로 날짜와 시간을 안전하게 다룹니다.

날짜/시간 API (java.time) 학습 시 주의할 점은 무엇인가요?

LocalDateTime 은 시간대 정보가 없습니다. 글로벌 서비스에서는 ZonedDateTime 이나 Instant 를 사용하세요.