Date.getTime()返回自1970年1月1日以来的毫秒数.Unixtime是自1970年1月1日以来的秒数.我通常不用java编写代码,但我正在修复一些错误.我有:
Date now = new Date();
Long longTime = new Long(now.getTime()/1000);
return longTime.intValue();
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法在java中获得unixtime?
UPDATE
根据John M的建议,我最终得到:
Date now = new Date();
Long longTime = new Long(now.getTime()/1000);
return longTime.intValue();
Run Code Online (Sandbox Code Playgroud) 关于Unix(POSIX)时间,维基百科说:
由于它处理闰秒,它既不是时间的线性表示,也不是UTC的真实表示.
但Unix date命令似乎并没有真正意识到它们
$ date -d '@867715199' --utc
Mon Jun 30 23:59:59 UTC 1997
$ date -d '@867715200' --utc
Tue Jul 1 00:00:00 UTC 1997
Run Code Online (Sandbox Code Playgroud)
虽然那里应该有一个闰秒Mon Jun 30 23:59:60 UTC 1997.
这是否意味着只有date命令忽略了闰秒,而Unix时间的概念却没有?
我正在尝试在 Scala 中生成一个新的纪元时间戳(例如 1435655706000)。我使用了下面的函数,但得到了时间格式。
Val timestamp: Timestamp = new Timestamp(System.currentTimeMillis())
Run Code Online (Sandbox Code Playgroud)