我从不是 ISO 格式的 API 中获取了类似“2021-03-26 22:02:53”格式的日期,我为它创建了一个自定义序列化程序,但出现错误。我也不想使用 ISO 格式,我想将日期发回为“yyyy-mm-dd hh:mm:ss”。
由于我们不能在 Kotlin 多平台中使用 Java.Date,那么像这样序列化日期格式的正确解决方案是什么?
谢谢
我从不是 ISO 格式的 API 中获取了类似“2021-03-26 22:02:53”格式的日期,我为它创建了一个自定义序列化程序,但出现错误。我也不想使用 ISO 格式,我想将日期发回为“yyyy-mm-dd hh:mm:ss”。
由于我们不能在 Kotlin 多平台中使用 Java.Date,那么像这样序列化日期格式的正确解决方案是什么?
谢谢
目前,kotlinx-datetime 仅支持 ISO 格式。
但是,您期望的格式与 ISO 足够接近,因此您可以通过简单地将空格替换为 a 来调整它,T
并且应该很好。这并不理想,但它应该在等待 Kotlinx 日期时间提供适当的格式支持时完成这项工作。
return decoder.decodeString().replace(' ', 'T').toLocalDateTime()
您也可以在序列化时执行相反的操作:
encoder.encodeString(value.toString().replace('T', ' '))