date - 将字符串日期转换为时间戳

标签 date lua

有没有什么简单的方法可以将 RFC HTTP 日期转换为 Lua 中的时间戳?
"Sat, 29 Oct 1994 19:43:31 GMT"
进入
783467011

最佳答案

更正 lhf 的示例代码以考虑时区,因为 os.time() 无法指定时区。还假设所有输入都以 GMT 结束,因为这仅适用于 GMT。

s="Sat, 29 Oct 1994 19:43:31 GMT"
p="%a+, (%d+) (%a+) (%d+) (%d+):(%d+):(%d+) GMT"
day,month,year,hour,min,sec=s:match(p)
MON={Jan=1,Feb=2,Mar=3,Apr=4,May=5,Jun=6,Jul=7,Aug=8,Sep=9,Oct=10,Nov=11,Dec=12}
month=MON[month]
offset=os.time()-os.time(os.date("!*t"))
print(os.time({day=day,month=month,year=year,hour=hour,min=min,sec=sec})+offset)

这给了我们 783477811。我们将使用 os.date("!%c") 进行验证,因为 !将以UTC而不是本地时区输出。
print(os.date("!%c",783477811))
--> Sat Oct 29 19:43:31 1994

关于date - 将字符串日期转换为时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4105012/

相关文章:

linux - torch 测试.sh,/usr/bin/lua : module 'paths' not found

PHP/MySQL : Date lower than today

lua - 在redis lua中解码msgpack

java - 日期格式 SQL

javascript - 关闭莫里斯图上的日期解析

javascript - 是否可以连接 Lua 和 javascript?

loops - 用于在表中创建变量的 Lua 循环

windows - lua io.popen运行程序,路径中有空格

c# - 将字符串转换为 mm/dd/yyyy 格式

c - 在 C 中获取日期和时间时遇到问题。我寻找答案并尝试了很多,但没有成功,