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