强制 os.date() 进行本地化。

我正在使用 Lua 和 C++ 中的 SMFL 库构建服务器报告系统,遇到了一个潜在问题。 该脚本的目标是创建一个带有 PHP 的 HTML 文件,并上传到我的 Web 服务器,以便进行报告。 上传文件的名称将是 '[process id] _[client IP]_[date].php',因此我们将得到类似于 '1234_199.123.45.7_31/01/2014.php' 的东西,而日期格式需要为欧洲格式。

我使用 os.date("%x"),但它报告本地机器的区域类型日期,而无论客户端的区域设置如何,都需要为 dd/mm/yyyy 格式。

我已经查看了如何做到这一点,但我只能得到时间偏移量,而无法强制 os.date("%x") 使用特定区域。

如何强制 os.date("%x") 使用 dd/mm/yyyy 格式?

点赞
用户1987838
用户1987838

你可以使用:

os.date("*t")

这将返回一个带有日期-时间组件的表,例如:

enter image description here

使用这些数据,你可以构建一个基于T.day、T.month和T.year的自定义格式化函数。

2014-01-31 20:46:38
用户869951
用户869951

Lua的 os.date接受格式说明符,与strftime相同。基于strftime文档,你想要的格式可以通过以下方式获得:

os.date("%d/%m/%Y")
2014-02-01 04:13:38