2012-07-12 109 views
4

尽管看起来很琐碎,但我无法找到一种方法将Groovy中的Unix时间戳转换为Date对象。从Groovy中的时间戳获取日期

让我尝试1280512800,这应该成为Fri, 30 Jul 2010 18:00:00 GMT

我第一次尝试

new Date(1280512800) 
// wrong, becomes Thu Jan 15 20:41:52 CET 1970 

然后我读了Java的时间戳使用毫秒,因此我应该使用

new Date((long)1280512800 * 1000) 
// the cast to long is irrelevant in Groovy, in any case I get 
// Thu Jan 08 03:09:05 CET 1970 

什么将时间戳转换为日期的正确方法是什么?如果我想指定工作时区,该怎么办?

回答

10

的问题是它与整数去,然后乘导致截断......

尝试:

new Date(1280512800L * 1000) 

new Date(((long)1280512800) * 1000) 
+1

作为一个快速的注意,这是由于[这个问题](http://jira.codehaus.org/browse/GROOVY-5185)在Groovy中具有优先权 – 2012-07-12 09:35:57