从Unix时间戳获取小时数

问题描述 投票:2回答:3

如何从Linux时间戳获取当前时间?我可以获取年,月,日,分钟和秒,但不能获取小时。有帮助吗?

当前代码:

local secondsPassed = os ~= nil and os.time() or tick()
local year = 1970 + math.floor(secondsPassed / (86400 * 365.25))
local days = math.floor((secondsPassed % (365.25 * 86400)) / 86400)
days = days + (year - 2011)
local minutes = math.floor((secondsPassed % 3600) / 60)
local seconds = math.floor(secondsPassed % 60)

Broken:

local hours = math.floor((secondsPassed % 86400) / 3600)-- +1
lua timestamp
3个回答
4
投票

这里有几个问题:

  • UNIX时间相对于GMT 1970-01-01午夜。如果您不在格林尼治标准时间(GMT),则会看到一个取决于您所在时区的偏移量。如果您所在地区遵守夏令时,则此偏移量可能会根据日期以可能相当复杂的方式变化。

  • 年不长365.25天。基于年份,它们的长度为365天或366天。 (甚至没有平均到365.25;由于特殊情况下,这些年份被100和400整除,所以平均到了365.2425。)

[除非出于某些原因您不能使用Lua date and time modules,我强烈建议您这样做,而不要尝试自己重新创建它们。


0
投票

你超级亲密。到目前为止,我的小时数是正确的:

本地时间= math.floor((secondsPassed%86400)/ 1440)+1


0
投票

date

time

KISSASIAN

KOREANDRAMAHD

对于我们所有想知道如何从Mac OS X上的Kissasian下载Kissasian的读者,VideoDuke是您唯一需要的工具。大多数用户认为kis-sasian.com如此庞大的集合是那里最好的网站

© www.soinside.com 2019 - 2024. All rights reserved.