由于24小时有86400000毫秒,因此调用以下代码是安全的:
timestamp % 86400000
以获取某一天经过的毫秒数?timestamp
是以毫秒为单位表示的Unix纪元,例如1480771537000
。
我想知道这是否是一种安全的技术,考虑到闰秒会不时添加和减去?无论timestamp
是什么,上述代码是否始终正确返回当天的毫秒数?
由于24小时有86400000毫秒,因此调用以下代码是安全的:
timestamp % 86400000
以获取某一天经过的毫秒数?timestamp
是以毫秒为单位表示的Unix纪元,例如1480771537000
。
我想知道这是否是一种安全的技术,考虑到闰秒会不时添加和减去?无论timestamp
是什么,上述代码是否始终正确返回当天的毫秒数?
是的,你可以使用timestamp % 86400000
来判断时间戳是否表示午夜/一天的开始(假设时间戳是自纪元以来的毫秒,而不是秒)。
根据这个Stack Overflow答案,在Unix时间中,一天总是包含86400000毫秒,尽管在现实生活中我们有时会添加闰秒,使得某些日子比标准的一天多一秒。
Epoch时间是GMT时间。您需要一个包含您的时区的时间戳。我使用以下代码来实现:
time_t t = time(NULL);
t = timegm(localtime(&t));
if(t % 86400 == 0) {
}