我以长格式(时代)创建了顶点。我想使用gremlin查询将长值转换为特定的日期格式(YYYY-MM或YYYY-MM-DD)。 .map或.transform无法正常工作。有人可以帮忙吗。
答案 0 :(得分:3)
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
您可以通过跳过Groovy提供的速记方式,而只在lambda中使用SimpleDateTime
来用Java编写相同的内容。当然,TinkerPop建议不要使用lambda,在这种情况下,我认为更好的解决方案是简单地将结果返回为Long
,然后根据需要在客户端上进行一次转换。