janusgraph 日期值与 gremlin 查询结果不匹配

Mismatch between janusgraph date value and gremlin query result

我有一些带有日期类型值的图表数据。 我对日期类型 属性 的 gremlin 查询有效,但输出值不是日期值。

环境:

下面是我的例子:

错误是 6 天 (1079.1.10 -> 1079.1.16)。 当年份超过 1600 年时,不会发生这种不匹配。 时间戳在 janusgraph 和 gremlinpython 之间是否有一些 serialization/deserialization 问题?

谢谢

Python 和日期存在一些问题,但我会为 3.4.3 修复它们,这是您声明使用的版本。该问题在 TINKERPOP-2264 处与修复程序一起在此处进行了描述,但基本上时区存在一些问题。从您的示例数据来看,您似乎使用时区(即 KST)存储日期。我不完全确定,但我想如果日期存储为 UTC,事情会按预期进行。

经过一番尝试和搜索,我发现 java 日期和 python 日期时间之间存在一些差异。 (儒略历与公历) 所以我用 JodaTime 替换了 SimpleDateFormat 并得到了如下预期结果:

  • 数据(原始):{"ID":"doc_1","MY_DATE":“1079-1-29”}
  • 数据(JanusGraph):{"ID":"doc_1","MY_DATE":[周三一月 23 00:32:08 KST 1079 ]}
    • (我认为 JanusGraph 在内部使用 java 日期对象..)
  • 查询:g.V().has("ID", "doc_1").valueMap("MY_DATE")
  • 输出 (gremlinpython): datetime(1079, 1, 29)

谢谢