Java에서 표준 시간대 구성
다양한 방법을 통해 Java에서 표준 시간대를 구성할 수 있으므로 애플리케이션이 원하는 표준 시간대 컨텍스트에서 작동할 수 있습니다. 두 가지 일반적인 방법은 환경 변수를 TZ
설정하고 JVM 속성을 -Duser.timezone
지정하는 것입니다. 이 문서에서는 두 방법 모두에 대한 간략한 개요를 제공합니다.
TZ 환경 변수 설정
TZ
환경 변수는 Unix와 유사한 운영 체제에서 실행되는 애플리케이션의 표준 시간대를 설정하는 표준 방법입니다. 이 변수를 설정하면 JVM(Java Virtual Machine)이 시작하는 동안 표준 시간대 설정을 선택합니다.
OS 수준에서 TZ 환경 변수 설정
운영 체제 수준에서 환경 변수를 TZ
설정하려면 다음 단계를 사용합니다.
원하는 표준 시간대를 식별합니다. 표준 시간대는 일반적으로 "지역/위치" 형식(예: "America/New_York" 또는 "Europe/London")으로 지정됩니다.
TZ
다음 방법 중 하나를 사용하여 환경 변수를 설정합니다.Unix/Linux 시스템에서 다음 명령을 사용하여 터미널 또는 셸 구성 파일
.bashrc
.bash_profile
.zshrc
에서 변수를 설정합니다.export TZ=America/New_York
Windows 시스템에서 다음 명령을 사용하여 명령 프롬프트 또는 시스템 환경 설정을 통해 변수를 설정합니다.
set TZ=America/New_York
JVM이 새 표준 시간대 설정을 선택할 수 있도록 애플리케이션을 다시 시작합니다.
예시
다음 예제에서는 애플리케이션 myapp.jar 표준 시간대에서 Europe/London
실행됩니다.
export TZ=Europe/London
java -jar myapp.jar
Dockerfile에서 TZ 환경 변수 설정
컨테이너에서 Java 애플리케이션을 실행할 때 Dockerfile 내에서 환경 변수를 설정 TZ
하여 컨테이너가 원하는 표준 시간대에서 실행되도록 할 수 있습니다.
Dockerfile 예제
다음 예제에서는 환경 변수를 설정하고 패키지를 설치하여 표준 시간대를 TZ
사용하도록 America/New_York
컨테이너를 tzdata
구성합니다.
# Use a base image with Java installed
FROM mcr.microsoft.com/openjdk/jdk:21-mariner
# Set the timezone environment variable
ENV TZ=America/New_York
# Set the working directory
WORKDIR /app
# Copy the application JAR file to the container
COPY myapp.jar /app/myapp.jar
# Run the application
CMD ["java", "-jar", "myapp.jar"]
JVM 속성 설정 -Duser.timezone
Java에서 표준 시간대를 구성하는 또 다른 방법은 JVM을 -Duser.timezone
시작할 때 속성을 지정하는 것입니다. 이 메서드는 플랫폼 독립적이며 명령줄 또는 애플리케이션 스크립트 내에서 직접 표준 시간대를 설정할 수 있습니다.
다음 단계를 사용하여 속성을 설정합니다 -Duser.timezone
.
원하는 표준 시간대를 식별합니다. 환경 변수와
TZ
마찬가지로 표준 시간대는 "영역/위치" 형식으로 지정됩니다.-Duser.timezone
다음 예제와 같이 애플리케이션을 시작할 때 Java 명령줄에 속성을 추가하여 속성을 설정합니다.java -Duser.timezone=America/New_York -jar myapp.jar
예시
다음 예제에서는 애플리케이션 myapp.jar 표준 시간대에서 Asia/Tokyo
실행됩니다.
java -Duser.timezone=Asia/Tokyo -jar myapp.jar
기타 시스템 및 환경
환경 변수 및 JVM 속성을 사용하여 TZ
Java에서 표준 시간대를 구성하는 원칙을 -Duser.timezone
다른 시스템 및 환경에 적용할 수 있습니다. 클라우드 플랫폼, VM(가상 머신) 또는 다양한 컨테이너 오케스트레이션 시스템에서 애플리케이션을 실행하든 동일한 방법을 사용하여 Java 애플리케이션이 올바른 표준 시간대 컨텍스트에서 작동하도록 할 수 있습니다.
클라우드 플랫폼에서 배포 스크립트 또는 환경 구성 설정 내에서 환경 변수 또는 JVM 속성을 구성 TZ
합니다.
가상 머신에서 VM 환경에서 환경 변수를 설정 TZ
하거나 애플리케이션 시작 스크립트에서 JVM 속성을 사용합니다.
컨테이너 오케스트레이션을 사용하면 컨테이너화된 애플리케이션에 Dockerfile 예제를 사용하여 표준 시간대 데이터를 사용할 수 있고 올바르게 설정해야 합니다.
이러한 원칙에 따라 Java 애플리케이션에 대한 다양한 배포 환경에서 일관된 표준 시간대 구성을 달성할 수 있습니다.