在 Lua 中,你可以使用 `os.date()` 函数轻松地将时间戳转换为格式化的时间字符串


在 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)

💡 实用技巧

  • 获取当前时间 :不传入时间戳参数即可。

    lua 复制代码
    local currentTime = os.date("%Y-%m-%d %H:%M:%S")
    print(currentTime) -- 输出当前的本地时间
  • 获取时间戳 :使用 os.time() 函数获取当前时间的时间戳。

    lua 复制代码
    local 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

希望这些信息能帮到大家!


相关推荐
X***078821 小时前
从语言演进到工程实践全面解析C++在现代软件开发中的设计思想性能优势与长期生命力
java·开发语言
毕设源码-钟学长1 天前
【开题答辩全过程】以 基于Python的车辆管理系统为例,包含答辩的问题和答案
开发语言·python
CCPC不拿奖不改名1 天前
数据处理与分析:数据可视化的面试习题
开发语言·python·信息可视化·面试·职场和发展
液态不合群1 天前
线程池和高并发
开发语言·python
小镇学者1 天前
【c++】C++字符串删除末尾字符的三种实现方法
java·开发语言·c++
SmartRadio1 天前
在CH585M代码中如何精细化配置PMU(电源管理单元)和RAM保留
linux·c语言·开发语言·人工智能·单片机·嵌入式硬件·lora
智慧地球(AI·Earth)1 天前
Codex配置问题解析:wire_api格式不匹配导致的“Reconnecting...”循环
开发语言·人工智能·vscode·codex·claude code
Ralph_Y1 天前
C++虚继承
开发语言·c++
杨章隐1 天前
Java 解析 CDR 文件并计算图形面积的完整方案(支持 MultipartFile / 网络文件)@杨宁山
java·开发语言
SmartRadio1 天前
进一步优化CH585M的低功耗模式
c语言·开发语言·单片机·嵌入式硬件·物联网