我正在使用Groovy(准确来说是Gremlin用于遍历图形数据库)进行工作。不幸的是,因为我在使用Gremlin,所以我无法导入新类。
我有一些日期值,希望将它们转换为Unix时间戳。它们以UTC格式存储,格式为:2012-11-13 14:00:00.000
我正在使用以下代码片段(在Groovy中)进行解析:
def newdate = new Date().parse("yyyy-M-d H:m:s:S", '2012-11-13 14:00:00:000')
问题是它进行了时区转换,导致:
Tue Nov 13 14:00:00 EST 2012
如果我使用time()
将其转换为时间戳,那么它会被转换为UTC,然后生成时间戳。
当首次解析日期时,如何使new Date()
不执行任何时区转换(仅假定日期为UTC)?
new Date().parse("yyyy-M-d H:m:s:S" + " Z", '2012-11-13 14:00:00:000' + ' 0000')
这个方法让我想起了... - vladrjava.text.ParseException: Unparseable date: "2012-11-13 14:00:00:000 0000"
- F21def newdate = new Date().parse("yyyy-M-d H:m:s:S Z", '2012-11-13 14:00:00:000' + ' UTC')
,那么这个解决方案对我有效。顺便说一下,#parse
是静态的,所以除非Gremlin强制要求,否则您不需要创建Date
实例来调用它。 - Justin Piper'+0000'
而不是' 0000'
| @jahroy,我认为我给出的示例会添加时区,你不这样认为吗? :) - vladr