Как преобразовать формат JSON 2019-04-28T00: 00: 00 в GregorianCalender в Android с помощью Kotlin и Moshi - PullRequest
0 голосов
/ 02 мая 2019

У меня есть приложение для 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

...