반응형

MongoDB 에서 보내오는 Date Format 형식은 아래와 같다.

 

yyyy-MM-dd'T'HH:mm:ss.SSS'Z'

2024-04-06T07:27:00.000Z

 

 

해당 날짜는 한국 시간과 일치하지 않아, 변환이 필요하다.

 

변환 도중 실패한 사례는 아래와 같다.

import java.text.SimpleDateFormat
import java.util.Date

var dateFormat = SimpleDateFormat("yyyy.MM.dd HH:mm", Locale.KOREAN)
val sdf = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US)
dateFormat.timeZone = TimeZone.getTimeZone("Asia/Seoul")

val date : Date? = sdf.parse("2024-04-06T07:27:00.000Z")

date?.let {
    Log.d("test_date", dateFormat.format(it))
}

 

위 코드는 에뮬레이터에서는 정상 동작하였으나, 실제 디바이스에서는 변환이 되지 않는 현상이 있었다.

 

 

그래서, 아래 코드로 적용 후에는 실제 디바이스에서도 변환이 정상적으로 가능하게 되었다.

 

import java.time.OffsetDateTime
import java.time.ZoneId
import java.time.format.DateTimeFormatter

val zone = ZoneId.of("Asia/Seoul")
val fmt = DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm", Locale.getDefault())

val dateTime = OffsetDateTime.parse("2024-04-06T07:27:00.000Z").atZoneSameInstant(zone)

dateTime?.let {
    Log.d("test_date", fmt.format(it))
}

 

반응형