有几种方法可以获得时间Tarantool
:
clock
模块fiber.time
功能os.date
但是处理日期的正确方法是什么?
首先,Unix epoch 有几个例程:
os.time()
— 经典的Lua时间函数。有点慢而且效率不高。不建议在 tarantool 内部使用来获取当前纪元,但当然可以使用。可用于获取任意日期的纪元(在本地时区内)。前任:os.time({ year = 2020, month = 6, day = 4 })
Run Code Online (Sandbox Code Playgroud)
将产生1591261200
,即我的 GMT+3 时区的 12:00:00
clock.time()
(和clock.time64()
) — 高分辨率计时器,几乎原始绑定到clock_gettime
. 更多信息可以从文档中获取fiber.time()
(还有fiber.time64()
)——clock.time 的缓存版本。更新了每个事件循环迭代。如果不需要时钟的绝对精度,推荐使用。为了将纪元转换为不同的格式和时区,有一些变体:
os.date("<format>" [, epoch ])
— 将纪元转换为本地时区。os.date("!<format>" [, epoch ])
(注意!
前缀)——将纪元转换为 GMT 时区。os.date('*t')
用于本地和os.date('!*t')
UTCicu-date
可能被认为您需要使用不同的时区和/或格式。例如,如果您需要 UTC 时间,可以使用 cached fiber.time
with os.date
:
local fiber = require 'fiber'
os.date("!%Y-%m-%dT%H:%M:%SZ", fiber.time())
Run Code Online (Sandbox Code Playgroud)
将2020-06-04T11:48:54Z
在时区独立返回类似的东西
归档时间: |
|
查看次数: |
195 次 |
最近记录: |