【问题标题】:Dates not saving correctly in react-native realm日期未正确保存在 react-native 领域
【发布时间】:2016-03-29 15:26:46
【问题描述】:

我有一个具有以下架构的对象:

{
   name: "TestModel",
   properties: {
      "dateCreated": "date"
   }
}

每当我使用 dateCreated: new Date() 将模型保存到数据库时,日期本身似乎保存不正确。

我在 Realm 浏览器中打开 .realm 文件,它列出了 48212 年的日期。Realm 的 react-native 版本是否以不同于 iOS 和 Java 的格式存储日期?有没有办法强制它以相同的格式存储日期?

谢谢

【问题讨论】:

    标签: react-native realm


    【解决方案1】:

    看起来日期在绑定中的存储方式不同 - JS 代码存储毫秒,而浏览器/ios/swift 绑定存储秒。我通过在存储日期之前将时间除以 1000 来验证浏览器中的当前时间。我在github上创建了一个issue来跟踪问题:https://github.com/realm/realm-js/issues/355

    已经有近期计划迁移到与所有绑定兼容的新日期格式,因此如果如期实现,我们可能会等到那时自动迁移 JS 日期格式。

    【讨论】:

    • 太棒了,谢谢你告诉我。现在我们只是将日期存储为整数,并等待跨平台日期格式的实现。再次感谢!
    • @Abhay - 如果您只在 react-native 中工作,则存储的数据可以正常工作,但只会在浏览器中错误显示,或者尝试跨多个绑定使用数据。 Realm 将在接下来的几周内转向新的日期格式,这将长期解决这个问题。现在,您可以通过调用getTime() 将日期转换为毫秒,然后除以 1000 转换为秒,从而在这两种类型之间进行转换。
    • @Ari - 感谢您的回复......我认为它只是以不同的方式存储数据,当我从领域对象请求日期时......我得到了正确的日期。所以,我希望随着实施的改变,它不会破坏我当前的数据? - 不知道你是否知道。
    • @Abhay - 进行更改后,将自动迁移以将任何现有数据更新为新格式。因此,如果您正常使用日期属性,则无需执行任何操作。
    • @Abhay - 刚刚在 npm 上以 0.13.0-rc 版本发布了对此的修复。这将自动将旧格式的日期转换为新格式,该格式应显示然后正确显示在浏览器中。试一试,如果您有任何问题,请告诉我们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多