[자바] java.time 패키지를 이용한 시간 관련 세팅

heegon·2026년 1월 7일

JAVA

목록 보기
20/20

Java 시간 관련 타입을 정리해보았다.
보통 백엔드로 스프링 혹은 스프링부트를 사용하기 때문에 자바의 시간 타입을 아는 것은 백엔드 구현에서 Entity를 세팅할 때 매우 중요하다.
java.time 패키지 에 관한 설명이다.


LocalDateTime

import문

import java.time.LocalDateTime;

데이터 형태
2026-01-07T13:30:50

'날짜 + 시간' 데이터를 담는 형태로, 가장 많이 사용한다.
타임존은 없다.

MySQL DB를 기준으로 DB 테이블에서는 DATETIME 속성을 사용한다.
자바 LocalDateTime 과 1:1로 매칭된다.
PostgreSQL DB를 기준으로는 timestamp without time zone 속성을 사용한다.


OffsetDateTime

import문

import java.time.OffsetDateTime;

데이터 형태
2026-01-07T13:30:50+09:00
날짜 + 시간 + UTC 기준 오프셋 데이터를 담는다.
T를 기준으로 앞은 날짜, 뒤는 시간 그리고 +/- 뒤는 UTC를 기준으로 몇 시간 차이 나는 시간의 데이터라고 저장했다 라는 정보를 담는다.

한국의 경우, UTC 보다 +9시간이기 때문에 위 예시처럼 +09:00 라고 담는다. 만약 다른 국가에서도 해당 서비스를 이용해야 한다면, -09:00 시간을 해서 UTC 시간으로 맞춰주고 사용자가 선택한 국가에 맞게 +- 로 국가 시간에 맞춰서 데이터를 보여주면 된다.


LocalDate / LocalTime

LocalDate 는 날짜만 담고, LocalTime 은 시간만 담는다.

import문

import java.time.LocalDate;
import java.time.LocalTime;

데이터 형태
2026-01-07
13:35:40


사용 예시

DB에 TIMESTAMP started_at 과 TIMESTAMP ended_at 이라는 속성이 있다.

백엔드 Entity 폴더에서는

import jakarta.persistence.*;

@Entity
@Getter
@Setter
@Table(name= "테이블명") {
	@Column(name = "started_at")
    private LocalDateTime startedAt;

    @Column(name = "ended_at")
    private LocalDateTime endedAt;
}

다음과 같이 Entity를 선언해주면 된다.

profile
❤️

0개의 댓글