小编Des*_*Lua的帖子

具有多种格式的Moshi LocalDateTime适配器

默认情况下,ThreeTenABP.LocalDateTime将转换为

{"date":{"day":10,"month":4,"year":2018},"time":{"hour":3,"minute":34,"nano":115000000,"second":18}}

我可以写一个适配器来支持ISO日期字符串 2018-04-10T03:45:26.009

class LocalDateTimeAdapter {
    @ToJson
    fun toJson(value: LocalDateTime): String {
        return FORMATTER.format(value)
    }

    @FromJson
    fun fromJson(value: String): LocalDateTime {
        return FORMATTER.parse(value, LocalDateTime.FROM)
    }

    companion object {
        private val FORMATTER = DateTimeFormatter.ISO_LOCAL_DATE_TIME
    }
}
Run Code Online (Sandbox Code Playgroud)

如何编写可以支持这两种格式的适配器(fromJson)

  • {"date":{"day":10,"month":4,"year":2018},"time":{"hour":3,"minute":34,"nano":115000000,"second":18}}
  • 2018-04-10T03:45:26.009

除了确定使用哪种格式之外fromJson,我很好奇Moshi如何在内部为LocalDateTime执行toJson/fromJson

kotlin java-time moshi

6
推荐指数
1
解决办法
1334
查看次数

标签 统计

java-time ×1

kotlin ×1

moshi ×1