java.util.Date의 시간대 설정

Muhammad Zeeshan 2023년10월12일
  1. ZonedDateTime을 사용하여 java.util.Date의 시간대 설정
  2. UTC Instant를 사용하여 java.util.Date의 시간대 설정
java.util.Date의 시간대 설정

이 빠른 자습서에서는 Java를 사용하여 날짜와 관련된 시간대를 설정하는 방법을 살펴봅니다. java.util.Date에는 시간대가 없습니다.

시간대 오프셋이 없는 UTC/GMT 표준을 나타냅니다. 문자열 표현을 생성할 때 toString 함수는 JVM의 기본 시간대를 애플리케이션의 기반으로 사용하기 때문입니다.

기본 제공 java.util.Date, .Calendarjava.text.SimpleDateFormat 클래스는 일반적으로 작업하기 어려우므로 피해야 합니다. 대신 Java 8과 함께 표준으로 제공되는 java.time 패키지를 사용합니다.

다음은 java.time 클래스가 시간대를 나타내는 방법입니다.

ZonedDateTime을 사용하여 java.util.Date의 시간대 설정

시간대, 오프셋 및 일광 절약 시간제 또는 DST와 같은 불규칙성을 처리하기 위한 지침을 적용하는 것이 대안보다 더 나은 옵션입니다.

ZoneIdInstant와 함께 사용되면 ZonedDateTime이 생성됩니다. 항상 시간대에 올바른 이름을 사용해야 합니다.

구체적이지도 표준화되지도 않은 EST와 같은 3~4자의 약어는 절대 사용해서는 안 됩니다.

ZoneId zId = ZoneId.of("Pakistan/Karachi");
ZonedDateTime zonedt = ZonedDateTime.ofInstant(instant, zId);

UTC Instant를 사용하여 java.util.Date의 시간대 설정

‘Instant’는 ‘java.time’의 기본 구성 요소입니다. ‘UTC’로 측정되는 타임라인의 ‘인스턴트’를 나타냅니다.

Instant 개체를 사용하여 대부분의 애플리케이션 로직을 구현합니다.

Instant instant = Instant.now();

로컬 날짜 시간

구문 분석 중인 텍스트에 오프셋 또는 영역 표시기가 포함되어 있지 않으면 LocalDateTime으로 해석해야 합니다.

사용해야 하는 시간대에 대해 명확한 경우 ZoneId를 할당하여 ZonedDateTime을 생성할 수 있습니다. 다음 코드 샘플을 참조하십시오.

LocalDateTime.parse("2022-09-10T01:13:15.123456789").atZone(ZoneId.of("Asia/Pakistan"))
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

관련 문장 - Java Date