【问题标题】:mongodb date converting issuemongodb日期转换问题
【发布时间】:2012-10-25 07:20:35
【问题描述】:

我在 java 中使用带有 morphia 的 mongoDB,我正在以日期格式保存一个值

保存前的值:2012 年 3 月 14 日星期三 03:09:23 IST
保存在 mongo 后:ISODate("2012-03-13T21:39:23Z")

Mongo 在保存时添加了一些小时数,有没有办法将这个值保存为日期格式

谢谢

【问题讨论】:

    标签: java mongodb morphia


    【解决方案1】:

    mongodb将datetime保存为“UTC DateTime”,可以参考以下链接。

    Dates - MongoDB

    要使用您存储的日期,只需将其转换为您的本地时间。你会得到原件。

    【讨论】:

    • 但是当我按日期搜索时会出现问题,假设我按“2012-03-14”搜索,然后存储的特定记录如 ISODate("2012-03-13T21:39:23Z ") 不在搜索结果中。我应该在执行查询之前将 '2012-03-14' 转换为 UTC 吗?
    • 当然,在查询数据库之前,如果您使用纯文本表示日期,则需要转换为 UTC。否则,如果您使用 java 驱动程序,您可以直接使用 datetime 对象而无需转换。
    • 当尝试在您的本地时区中搜索仅日期部分时,匹配日期值不会减少它,因为您本地 TZ 中的单个日期跨越 UTC 中的两个日期。请注意,“搜索日期 YYYY-MM-DD”实际上是指“搜索 YYYY-MM-DDT00:00:00 和 YYYY-MM-DDT23:59:59.999 之间的时间戳”。除非您在本地 TZ 中构建此时间戳范围并在查询之前将该范围的两端转换为 UTC,否则您将无法得到正确的答案。
    猜你喜欢
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多