-
[Android / kotlin] Retrofit으로 LocalDateTime형식 데이터 주고받기Android/kotlin 2022. 7. 17. 01:53
일반적인 json string 형식과 다르게 localdatetime형식의 데이터를 서버에 전송하거나 받을때는 DateFormat을 추가한 Gson객체를 생성하고 localdatetimeConverter도 만들어 준다.
서버에 전송하거나 받고 싶은 LocalDateTime형식의 데이터 예시
"2022-07-16T16:43:58.977Z"
1. gson객체
val gson = GsonBuilder() .setDateFormat("yyyy-MM-dd'T'HH:mm:ss") .registerTypeAdapter(LocalDateTime::class.java, LocalDateTimeConverter()).create()
2. LocalDateTimeConverter.kt
class LocalDateTimeConverter : JsonDeserializer<LocalDateTime>, JsonSerializer<LocalDateTime> { @RequiresApi(Build.VERSION_CODES.O) override fun deserialize( json: JsonElement, typeOfT: Type, context: JsonDeserializationContext ): LocalDateTime { return LocalDateTime.parse(json.asString, DateTimeFormatter.ISO_DATE_TIME) } @RequiresApi(Build.VERSION_CODES.O) override fun serialize( src: LocalDateTime, typeOfSrc: Type, context: JsonSerializationContext ): JsonElement { val dateTimeString = src.format(DateTimeFormatter.ISO_DATE_TIME) return JsonPrimitive(dateTimeString) }
2.retrofit객체
var retrofit = Retrofit.Builder() .client(okHttpClient) .baseUrl(BoardService.API_URL) .addConverterFactory(GsonConverterFactory.create(gson)) .build()
gson객체를 넣어준다.
'Android > kotlin' 카테고리의 다른 글
[Android/ kotlin] STOMP 를 이용한 실시간 양방향 채팅 기능 구현 (0) 2023.02.16 [android/kotlin] recyclerview item clicklistener (0) 2022.08.28 [Android/kotlin] Bundle 사용법, Fragment와 Fragment 사이 데이터 전달, Fragment 전환 (0) 2022.08.24 [Android/kotiln] jwt 토큰 임시 저장, shared preference, OkHttp3 Interceptor 사용법 (0) 2022.06.21