所以我一直在玩这个模拟时钟,我试图在网上找到答案,但没有找到。我基本上希望这个时钟做的几乎是参考GMT时间,而不是计算机上的时间,因为我正在尝试制作一个世界上所有时间的游戏。但我不能这样做,因为如果我加上6个小时来显示德国时间,它会正确地告诉我时间,但对于不同时区的任何人都不会。我应该在代码中更改什么?
local sp = script.Parent
local Clock = sp.Clock
local HourArrow = Clock.Hour
local MinArrow = Clock.Min
SecArrow = Clock.Sec
while true do
local t=tick()
local hour=(((t/60)/60)/12)%1
local minute=(hour*12)%1
local mint = math.floor(minute*60)
local second= math.floor(((minute*60)%1)*60)
HourArrow.Rotation = 180+(hour*360)
MinArrow.Rotation = 180+(mint*6)
SecArrow.Rotation = 180+(second*6)
wait(1)
end
答案 0 :(得分:0)
您可能需要查看os.time。这允许您根据需要格式化时间表示。有关格式字符串,请参阅strftime
手册。您还可以将以小时,分钟等组件解构的时间作为os.date
的表格。
答案 1 :(得分:0)
您应该使用“os.date(”!%c“)”直接打印UTC时间,或者使用“os.time()”来从1970年1月1日00:00:00(UTC)获得秒数< / p>
答案 2 :(得分:0)
您当前的脚本是不必要的。
myTime = os.time{year=1970,month=1,day=1,hour=0} --current time in seconds from jan 1 1970 midnight
hoursToMove = 1 --how many hours to move forward
myTime = hoursToMove*60*60 + myTime --multiplies by 60 twice to reach minutes then hours
myTime
现在等于自January 1, 1970, 00:00
UTC以来经过的秒数,再加上一小时-更改hoursToMove
以修改您想要的前进/后退小时数(负数可以工作)