Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 计算一下从新纪元开始有多少小时?_Java_C_Date_Unix Timestamp_Epoch - Fatal编程技术网

Java 计算一下从新纪元开始有多少小时?

Java 计算一下从新纪元开始有多少小时?,java,c,date,unix-timestamp,epoch,Java,C,Date,Unix Timestamp,Epoch,这是一个简单的问题,但我担心答案会有多复杂 我想知道在我的申请表中,从新纪元到现在已经过去了多少个小时。更具体地说,我想知道“自大纪元以来,格林尼治标准时间时钟以:00结束了多少次” 通常我会做: number_of_seconds_since_epoch / 3600 但我不确定一小时是否等于3600秒。我一直听说地球是如何减速和加速的,以及地球是如何做奇怪的事情的,等等 有人能用任何语言告诉我正确的方法吗?谢谢 这里要小心。取决于你如何获得自纪元以来的秒数,你可能不必关心闰秒。如果你调用一

这是一个简单的问题,但我担心答案会有多复杂

我想知道在我的申请表中,从新纪元到现在已经过去了多少个小时。更具体地说,我想知道“自大纪元以来,格林尼治标准时间时钟以:00结束了多少次”

通常我会做:

number_of_seconds_since_epoch / 3600
但我不确定一小时是否等于3600秒。我一直听说地球是如何减速和加速的,以及地球是如何做奇怪的事情的,等等


有人能用任何语言告诉我正确的方法吗?谢谢

这里要小心。取决于你如何获得自纪元以来的秒数,你可能不必关心闰秒。如果你调用一个操作系统API,你只会得到从1970-01-01T00:00:00开始的秒数


已插入闰秒,以使日期适应地球自转。操作系统API返回的是从新纪元开始计算秒数。

Java系统和许多计算机系统一样,假设每天24小时(有些系统有夏时制变化)闰秒被视为正常的时间漂移校正,并通过操作系统和协议(如NTP或PTP)进行处理

GMT没有夏令时更改,因此您可以使用

int hours = (int) (System.currentTimeMillis() / 3600000);

关于Date API中的闰秒有一个讨论,要点之一是:


大多数计算机时钟不够精确,无法反映闰秒的区别

时不时有一个闰秒,那么你就有一个小时加上3601秒。UNIX时间不关心地球的自转。在UNIX下,1小时正好是3600秒。@DanielFischer这正是我担心的事情,哈哈。这些被称为闰秒。从新纪元到现在,已经有25闰秒了。