λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ’» 개발자 이야기/μ•ˆλ“œλ‘œμ΄λ“œ μ‚½μ§ˆκΈ°

μ„œλ²„μ—μ„œ λ‚ μ§œ 데이터λ₯Ό,,, μ΄λ ‡κ²Œ μ€˜λ²„λ Έλ‹€,,, (Android λ‚ μ§œ 양식 λ°”κΎΈκΈ°!)

by μ •μ„ ν•œ 2024. 8. 6.
728x90
λ°˜μ‘ν˜•

μš°λ‹€λ‹€λ‹€ 개발만 ν•˜κ³ μžˆλŠ” μš”μ¦˜μž…λ‹ˆλ‹€...
API 데이터 μ—°κ²°ν•˜λ˜ 도쀑에 νŠΉμ •ν™”λ©΄λ§Œ λ“€μ–΄κ°€λ©΄ 앱이 죽길래, fatal 였λ₯˜λ§Œ μ •λ¦¬ν–ˆλ”λ‹ˆ 이런 μΉœκ΅¬κ°€ ν•˜λ‚˜ μžˆλ”λΌκ΅¬μš”.

java.time.format.DateTimeParseException

μ™œ 였λ₯˜κ°€ λ‚˜λŠ”κ°€ ν–ˆλ”λ‹ˆ κΈ°μ‘΄ Util ν•¨μˆ˜μ— λ°˜μ˜λ˜μ–΄μžˆλŠ” 양식과 λ‹€λ₯Έ 양식이 λ„˜μ–΄μ™”λ”κ΅°μš”.
μ™œ νŒŒμ‹±ν•˜λ‹€ 였λ₯˜λ‚˜λŠ”μ§€ ν•œμ°Έμ„ λ©ν•˜λ‹ˆ λ°”λΌλ³΄μ•˜μŠ΅λ‹ˆλ‹€. γ…‹γ…‹γ…‹γ…‹γ…‹

"2024-06-12T00:00:00" μ΄λ ‡κ²Œ λ°›μ•˜μŠ΅λ‹ˆλ‹€.
κ²°κ³Ό 데이터 확인 μ•ˆν•˜κ³  데이터 type으둜 string만 ν™•μΈν•˜κ³  데이터 λΆ™μ΄λŠ” μž‘μ—…μ„ μ§„ν–‰ν•˜κ³  μžˆμ–΄μ„œ μ΄μŠˆκ°€ μžˆλ‹€κ³  인지λ₯Ό λͺ»ν–ˆμ—ˆμŠ΅λ‹ˆλ‹€.

ISO8601 μ•ˆμ— λ“€μ–΄κ°€λŠ” 규격이긴 ν•œλ°, Tκ°€ λΆ™μ–΄μžˆμ–΄μš” γ…‹γ…‹γ…‹γ…‹
T와 λ’€μ˜ μ‹œ:λΆ„:초의 규격이 ν˜„μž¬ Util ν•¨μˆ˜μ™€ λ§žμ§€ μ•Šμ•„μ„œ ν•΄λ‹Ή λ‚΄μš©μ„ μˆ˜μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

μ „μ—λŠ” yyyy-MM-dd ν˜•μ‹μœΌλ‘œλ§Œ μ‚¬μš©ν–ˆμ—ˆλŠ”λ° μ΄λ²ˆμ—λŠ” 결제 및 μΈμ¦μ‹œκ°„λ„ μ€‘μš”ν•œ μ˜μ—­μ΄λΌ hh:mm 도 μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

이런 λ‚ μ§œ ν˜•μ‹μ„ λ³€ν™˜ν•˜λŠ” ν•¨μˆ˜λŠ” SimpleDateFormat()을 μ‚¬μš©ν•©λ‹ˆλ‹€.

 

SimpleDateFormat  |  Android Developers

 

developer.android.com

fun formatDateForISO8601(oldDate: String?): String {
    if (oldDate == null) return ""

    val date = SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss", Locale.KOREAN).parse(oldDate)
    return SimpleDateFormat("yyyy.MM.dd hh:mm",Locale.KOREAN).format(date!!)
}

μ΄λ ‡κ²Œ λ³€ν™˜ν•˜λ©΄ μ„œλ²„μ—μ„œ λ“€μ–΄μ˜¨ String 값을 SimpleDateFormat을 톡해 ν•œκ΅­μ‹œκ°„μ— 맞좰 parse ν•˜κ³ ,
이λ₯Ό λ‹€μ‹œ μ›ν•˜λŠ” ν˜•νƒœμ˜ String으둜 Return ν•  수 μžˆλ„λ‘ μˆ˜μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

κ°„λ‹¨ν•˜μ£ ? λ‹€μŒλΆ€ν„°λŠ” κΌ­ 데이터 양식도 λ§žμΆ°μ„œ ν™•μΈν•˜κΈ°...!

728x90
λ°˜μ‘ν˜•