시스템 설정에 따라서 다른 지역의 시간을 가져올 수 있는데, 지역과 무관하게 항상 한국 시간을 가져오는 방법에 대해서 알아보겠습니다.

1. LocalDateTime을 이용한 방법

Java에서 제공하는 time 라이브러리를 사용하여 한국 시간을 가져올 수 있습니다.

아래와 같이 한국 시간대의 ZoneId로 현지 시간을 가져올 수 있습니다.

  • ZoneId.of("Asia/Seoul") : 한국 시간대 (Asia/Seoul)의 시간을 가져옴
  • LocalDateTime.now(koreaTimeZone) : TimeZone에 맞는 LocalDateTime을 가져옴
import java.time.ZoneId
import java.time.LocalDateTime

fun main() {
    // 한국 시간대 (Asia/Seoul)의 시간을 가져옴
    val koreaTimeZone = ZoneId.of("Asia/Seoul")
    val koreaTime = LocalDateTime.now(koreaTimeZone)

    println("한국 시간: $koreaTime")
}

Output:

한국 시간: 2023-09-18T04:59:31.815

2. Calendar를 이용한 방법

한국 시간대의 TimeZone을 가져오고, Calendar를 한국 시간대로 변경하여 시간을 가져오면 한국 시간을 가져올 수 있습니다. calendar는 이제 잘 안쓰이기 때문에, LocalDateTime를 사용하여 시간을 가져오도록 구현하는 것이 좋습니다.

  • TimeZone.getTimeZone("Asia/Seoul") : 한국 시간대의 TimeZone 가져옴
  • Calendar.getInstance(koreaTimeZone) : 한국 시간대로 설정된 Calendar 객체 생성
  • calendar.time : 한국 시간 가져옴
import java.util.TimeZone
import java.util.Calendar

fun main() {
    // 한국 시간대 가져옴
    val koreaTimeZone = TimeZone.getTimeZone("Asia/Seoul")

    // Calendar 객체를 생성하고 한국 시간대로 설정
    val calendar = Calendar.getInstance(koreaTimeZone)

    // 현재 시간을 가져옴
    val koreaTime = calendar.time

    println("한국 시간: $koreaTime")
}

Output:

한국 시간: Mon Sep 18 05:05:40 KST 2023