Lua - 获取特定时区的时间和日期

4

我希望在Lua中获取特定时区的日期和时间,并以以下格式呈现:os.date("%a %b %d, %H:%M")

我知道加上感叹号("!")os.date("!%a %b %d, %H:%M")会返回UTC时间,但是如何进行偏移以获取所需的时间?

在我的情况下,所需的时区是UTC+08:00


1
完整的库请参见 https://github.com/daurnimator/luatz。 - lhf
1个回答

9

os.date接受两个参数:

os.date ( [format [, time]] )

time参数是以秒为单位的,可用于偏移返回值。

由于os.time()以秒为单位返回当前时间,因此您可以简单地添加您的偏移量(8),乘以每分钟的秒数(60),再乘以每秒钟的分钟数(60)。

os.date( "!%a %b %d, %H:%M", os.time() + 8 * 60 * 60 )

如果您处于UTC+01:00时区,您将收到以下类型的输出:
> os.date( "%a %b %d, %H:%M")
Wed Mar 16, 09:33
> os.date( "!%a %b %d, %H:%M")
Wed Mar 16, 08:33
> os.date( "!%a %b %d, %H:%M", os.time() + 8 * 60 * 60 )
Wed Mar 16, 16:33

如果你的偏移量不是整数小时,你需要使用小数点。 例如:UTC+07:30 在公式中应该为 7.5

12
夏令时怎么样? - Yu Hao
无法相信LUA没有一些时区设置。 - laterSon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接