【问题标题】:How to deserialize date in format "yyyy-mm-dd hh:mm:ss"?如何以“yyyy-mm-dd hh:mm:ss”格式反序列化日期?
【发布时间】:2021-06-07 17:23:46
【问题描述】:

我从非 ISO 格式的 API 中获得了类似“2021-03-26 22:02:53”的日期,我为它创建了一个自定义序列化程序,但出现错误。 我也不想使用 ISO 格式,我想将日期发回为“yyyy-mm-dd hh:mm:ss”。

既然我们不能在 Kotlin 多平台中使用 Java.Date,那么像这样序列化日期格式的正确解决方案是什么?

谢谢

【问题讨论】:

  • 请分享一些代码,你得到的错误和正确的图像。
  • 使用多平台日期时间库。 github.com/Kotlin/kotlinx-datetime
  • 这里怎么用?我不能使用 Date-formater,因为它是 Java.library。
  • 请避免发布代码图片,这是不可搜索且不可访问的。请改为将代码复制到代码块中(可以用三个反引号括起来)

标签: kotlin kotlin-android-extensions kotlin-multiplatform date-parsing kotlin-multiplatform-mobile


【解决方案1】:

目前,kotlinx-datetime 只支持 ISO 格式。

但是,您期望的格式与 ISO 非常接近,因此您可以通过简单地将空格替换为 T 来调整它,并且应该很好。这并不理想,但它应该在等待 Kotlinx 日期时间提供适当的格式支持时完成这项工作。

return decoder.decodeString().replace(' ', 'T').toLocalDateTime()

序列化的时候也可以反其道而行之:

encoder.encodeString(value.toString().replace('T', ' '))

【讨论】:

    猜你喜欢
    • 2013-11-01
    • 2015-11-03
    • 2020-03-07
    • 2019-10-15
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多