从 Groovy 中的时间戳获取日期

10

虽然看起来很琐碎,但我无法找到一种在Groovy中将Unix时间戳转换为Date对象的方法。

让我尝试一下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

如何正确地将时间戳转换为日期?如果我想要指定时区怎么办?

1个回答

18
问题在于它使用整数,然后乘法会导致截断... 尝试:
new Date( 1280512800L * 1000 )
或者
new Date( ((long)1280512800) * 1000 )

1
作为一个快速的说明,这是由于Groovy中的类型转换优先级问题导致的。此问题 - tim_yates

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接