У меня есть приложение для Android, написанное на Kotlin, которое получает данные из JSON. Я использую Retrofit и Moshi для получения данных. Я получаю ошибки, потому что Моши не знает, как преобразовать дату в GregorianCalendar. Как я могу преобразовать формат даты JSON в формат GregorianCalendar?
Дата в формате JSON имеет следующий формат: 2000-06-28T00: 00: 00
Конфигурация API:
class ApiClient {
companion object {
private const val BASE_URL = "http://10.0.2.2:3000"
fun getClient(): Retrofit {
val okHttpClient = OkHttpClient.Builder().build()
val moshi = Moshi.Builder().build()
return Builder().client(okHttpClient).baseUrl(BASE_URL)
.addConverterFactory(MoshiConverterFactory.create(moshi))
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build()
}
}
}
Пример класса:
data class Person (
@Json(name = "personId")
val personId: Int,
@Json(name = "personName")
val name: String,
@Json(name = "personAge")
val age: Int,
@Json(name = "isFemale")
val isFemale: Boolean,
@Json(name = "birthDate")
val birthDate: GregorianCalendar
)
{
"persons": [{
"personId": 1,
"personName": "Bert",
"personAge": 19,
"isFemale": "false",
"birthDate": "2000-06-28T00:00:00"
}
]
}
Я хочу, чтобы дата JSON 2000-06-28T00: 00: 00 была преобразована в GregorianCalendar или любой другой формат даты, который не ограничен, но поддерживается минимальным API21