使用 gremlin 查询将长值(纪元)转换为日期格式

Converting long value(epoch) to Date format using gremlin query

我有长格式(纪元)的顶点创建日期。我想使用 gremlin 查询将 long 值转换为特定的日期格式(YYYY-MM 或 YYYY-MM-DD)。 .map 或 .transform 不工作。有人可以帮忙吗

Gremlin 语言没有内置的日期转换功能。如果你想在 Gremlin 中执行它,你将不得不使用 lambda - 对于 Groovy 它看起来像:

gremlin> g = TinkerGraph.open().traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin> g.addV('person').property('dob',Date.parse('yyyy-MM-dd','2018-10-01').getTime())
==>v[0]
gremlin> g.V().valueMap()
==>[dob:[1538366400000]]
gremlin> g.V().values('dob').map{new Date(it.get()).format('yyyy-MM-dd')}
==>2018-10-01

您可以在 Java 中编写相同的内容,方法是跳过 shorthand Groovy 提供并仅在 lambda 中使用 SimpleDateTime。当然,TinkerPop 建议不要使用 lambda,在这种情况下,我认为更好的解决方案是简单地将 return 的结果作为 Long,然后根据需要在客户端上进行转换。