Date.getTime()返回自1970年1月1日以来的毫秒数。Unixtime为自1970年1月1日以来的秒数。我有:
Date now = new Date();
Long longTime = new Long(now.getTime()/1000);
return longTime.intValue();
有没有更好的方法来在Java中获取unixtime?
27
由于将其转换为整数,因此您引入了2038年的问题(相当于Unix的Y2K)。那时Unix时代达到了20亿,并转为负数。解决方法是移至64位Unix。Java等效项是将其保留很长时间。
—
约翰M,2009年
是的,我知道。与之交互的代码预期unixtime为32位int。
—
加里·理查森
2038年即将到来。
—
Pacerier,2012年
currentTimeMillis是否有适当的名称或标准?我倾向于在我的文档中将其称为UNIX时间的毫秒版本。
—
汤姆
如果您想让软件在溢出中幸免,请使用
—
bryc
long
,而不要使用int
。int
除非您使用不同的粒度(例如1秒= 4秒等),否则实际上没有理由使用时间戳。要么这样做,要么隐藏您的代码,以免后代看到您的能力如何。