안드로이드 개발 팁 #31 - UTC 시간을 지역 시간으로 변환하는 함수

스팀 API를 사용하여 여러 가지 자료들을 받을 수 있는데요. 그 중 시간은 UTC 시간이기 때문에 현재 속한 지역에 맞는 시간으로 바꿔줘야 합니다. 예를 들어 한국에 있는 사용자에게는 UTC 시간이 아닌 한국 시간이 화면에 보여야 하는 것이지요. 스팀 앱을 만들어 보는 과정에 이를 위한 함수를 만들어 보았습니다.


UTC 시간을 지역 시간으로 변환하는 함수

아래와 같이 String 확장 함수로 구현했습니다. 언어는 코틀린(Kotlin)입니다.

// Precondition: The date format of this string is "yyyy-MM-dd'T'HH:mm:ss" or "yyyy-MM-dd HH:mm:ss"
fun String.fromUtcTimeToLocalTime(): String {
    try {
        val sdf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
        val date = sdf.parse(this.replace("T", " ").trim())
        val longUtcTime = date.getTime()
        val offset: Int = TimeZone.getDefault().getOffset(longUtcTime)
        val longLocalTime = longUtcTime + offset
        val dateLocalTime = Date().apply {
            setTime(longLocalTime)
        }
        return sdf.format(dateLocalTime)
    }
    catch (e: ParseException) {
        e.printStackTrace()
        return ""
    }
}

예를 들어, 이 함수를 한국에서 호출하면요. "2023-01-01T01:23:45"을 파라메터로 읽고 이를 "2023-01-01 10:23:45"로 변환하여 리턴합니다.


참고 자료

위 함수를 구현하기 위해 참고했던 자료를 링크로 남겨 둡니다.

https://blog.acronym.co.kr/351


지난 안드로이드 개발 팁

Sort:  
 2 years ago 

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Upvoted! Thank you for supporting witness @jswit.

Coin Marketplace

STEEM 0.17
TRX 0.13
JST 0.027
BTC 58906.05
ETH 2666.51
USDT 1.00
SBD 2.44