Lua 从unix时间戳获取小时数
如何从linux时间戳中获取当前小时?我可以得到年、月、日、分、秒,但不能得到小时。有什么帮助吗 当前代码:Lua 从unix时间戳获取小时数,lua,timestamp,Lua,Timestamp,如何从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 =
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)
破碎的:
local hours = math.floor((secondsPassed % 86400) / 3600)-- +1
这里有几个问题:
- UNIX时间相对于GMT 1970-01-01午夜。如果您不在GMT,您将看到一个取决于时区的偏移量。如果您所在地区遵守夏令时,此偏移量将根据日期以可能相当复杂的方式变化
- 一年不是365.25天。根据年份,它们可以是365天或366天。(平均值甚至没有达到365.25;由于年份的特殊情况可以被100和400整除,平均值达到365.2425。)
除非出于某种原因您不能使用Lua,否则我强烈建议您这样做,而不是尝试自己重新创建它们。这里有几个问题:
- UNIX时间相对于GMT 1970-01-01午夜。如果您不在GMT,您将看到一个取决于时区的偏移量。如果您所在地区遵守夏令时,此偏移量将根据日期以可能相当复杂的方式变化
- 一年不是365.25天。根据年份,它们可以是365天或366天。(平均值甚至没有达到365.25;由于年份的特殊情况可以被100和400整除,平均值达到365.2425。)
除非出于某种原因您不能使用Lua,否则我强烈建议您这样做,而不是尝试自己重新创建它们。您非常接近。到目前为止,我认为:
当地时间=数学楼层((第二空间为%86400)/1440)+1你非常接近。到目前为止,我认为:
当地时间=数学地板((秒数%86400)/1440)+1如果你的天数正确,那么你的时/分/秒怎么可能被打破,因为它们都依赖于秒数?唯一被打破的是小时如果你的天数正确,那么,你的时/分/秒怎么可能被打破,因为它们都依赖于秒?唯一被打破的是小时。因此,如果我不加/减我的时区,它似乎是错误的?我会使用操作系统的日期和时间模块,但不允许您使用它们;不考虑时区肯定会给你错误的时间。不过,我提到的其他问题也同样适用。因此,如果我不加/减我的时区,这似乎是错误的?我会使用操作系统的日期和时间模块,但不允许您使用它们;不考虑时区肯定会给你错误的时间。不过,我提到的其他问题也将适用。