简努斯图日期值与 gremlin 查询结果不匹配



我有一些带有日期类型值的图形数据。 我对日期类型属性的 gremlin 查询正在工作,但输出值不是日期值。

环境:

  • Janusgraph 0.3.1
  • GremlinPython 3.4.3

下面是我的例子:

  • 数据(JanusGraph(:{"ID": "doc_1", "MY_DATE": [Tue Jan 10 00:00:00 KST 1079]}
  • 查询:g.V().has("ID", "doc_1").valueMap("MY_DATE")
  • 输出(gremlinpython(:datetime(1079, 1, 16)

错误为 6 天 (1079.1.10 -> 1079.1.16(。 当年份高于 1600 时,不会发生这种不匹配。 时间戳在janusgraph和gremlinpython之间是否存在一些序列化/反序列化问题?

谢谢

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

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

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

谢谢

相关内容

  • 没有找到相关文章

最新更新