在 Lua 中,你可以使用 `os.date` 函数轻松地将时间戳转换为格式化的时间字符串
- [⏳ 核心函数:os.date()](#⏳ 核心函数:os.date())
- [⌨️ 基础示例](#⌨️ 基础示例)
- [🔤 常用格式化选项](#🔤 常用格式化选项)
- [🌐 时区处理](#🌐 时区处理)
- [💡 实用技巧](#💡 实用技巧)
在 Lua 中,你可以使用 os.date() 函数轻松地将时间戳转换为格式化的时间字符串。这个函数允许你自定义输出的时间格式。
⏳ 核心函数:os.date()
os.date() 函数接收两个参数:
- format: 格式化字符串,指定你希望的时间显示形式。
- time: 可选参数,表示要转换的时间戳(以秒为单位)。如果省略,则使用当前时间。
⌨️ 基础示例
lua
-- 定义一个时间戳(例如:2021年3月25日 11:09:39 左右)
local timestamp = 1616634579
-- 转换为格式化的时间字符串
local formattedTime = os.date("%Y-%m-%d %H:%M:%S", timestamp)
print(formattedTime) -- 输出:2021-03-25 11:09:39
🔤 常用格式化选项
你可以根据需要组合这些格式符,例如 %Y-%m-%d 输出 2021-03-25,%H:%M:%S 输出 11:09:39。
| 格式符 | 含义 | 示例 |
|---|---|---|
%Y |
四位数的年份 | 2021 |
%y |
两位数的年份 | 21 |
%m |
月份(01-12) | 03 |
%d |
一个月中的第几天(01-31) | 25 |
%H |
小时(24小时制,00-23) | 11 |
%I |
小时(12小时制,01-12) | 11 |
%M |
分钟(00-59) | 09 |
%S |
秒(00-59) | 39 |
%A |
星期几的全称 | Thursday |
%a |
星期几的简写 | Thu |
%B |
月份的全称 | March |
%b |
月份的简写 | Mar |
%c |
默认的日期和时间表示 | Thu Mar 25 11:09:39 2021 |
🌐 时区处理
默认情况下,os.date() 会使用你所在地区的本地时间。如果你需要转换为 UTC(协调世界时) ,可以在格式化字符串前加上 !。
lua
-- 获取当前时间的 UTC 格式
local utcTime = os.date("!%Y-%m-%d %H:%M:%S")
print(utcTime) -- 输出类似:2025-09-30 05:16:00 (UTC时间)
-- 转换指定时间戳为 UTC
local utcTimeSpecific = os.date("!%Y-%m-%d %H:%M:%S", 1616634579)
print(utcTimeSpecific)
💡 实用技巧
-
获取当前时间 :不传入时间戳参数即可。
lualocal currentTime = os.date("%Y-%m-%d %H:%M:%S") print(currentTime) -- 输出当前的本地时间 -
获取时间戳 :使用
os.time()函数获取当前时间的时间戳。lualocal currentTimestamp = os.time() print(currentTimestamp) -- 输出自 1970-01-01 00:00:00 UTC 以来的秒数 -
时间字符串转时间戳 :使用
os.time()并传入一个包含日期时间信息的表。lua-- 定义一个表示日期时间的表 local timeTable = {year=2021, month=3, day=25, hour=11, min=9, sec=39} -- 转换为时间戳 local timestampFromTable = os.time(timeTable) print(timestampFromTable) -- 输出:1616634579
希望这些信息能帮到大家!