os.date()

类型 函数
os.*
返回值 字符串表格
修订版 发行版 2024.3703
关键字 时间、日期、格式
另请参阅 os.time()
os.clock()
system.getTimer()

概述

返回一个字符串或包含日期和时间(根据指定的字符串格式设置)的表格。在未带参数调用时,os.date() 返回一个合理的日期和时间表示形式,它会根据宿主系统和当前语言环境而异(也就是说,os.date() 等效于 os.date("%c"))。

语法

os.date( [format [, time] ] )
format (可选)

字符串。如果 format 以 ! 开头,则日期按协调世界时格式化。此选选项后面,如果 format 是字符串 *t,则 date 返回一个包含下列字段的表格

  • year(四位数字)
  • month (1-12)
  • day (1-31)
  • hour (0-23)
  • min (0-59)
  • sec (0-61)
  • wday (星期,星期日为 1)
  • yday (一年中的第幾天)
  • isdst(夏令时标志,一个布尔值)。

如果 format 不是 *t,则 os.date() 会将日期作为字符串返回,格式化规则类似于 C 函数 strftime(3)

代码 用途
%a 缩写星期名称
%A 星期全称
%b 缩写月份名称
%B 月份全称
%c 适合于语言环境的日期和时间表示形式
%d 日期(十进制数,01-31)
%H 24 小时制的小时(00-23)
%I 12 小时制的小时(01-12)
%j 一年中的第几天(十进制数,001-366)
%m 月份(十进制数,01-12)
%M 分钟(十进制数,00-59)
%p 当前语言环境中的 12 小时制 A.M./P.M. 指示符
%S 秒(十进制数,00-59)
%U 以星期日为一周第一天的年份第几周(十进制数,00-53)
%w 星期(十进制数,0-6;星期日为 0)
%W 以星期一为一周第一天的年份第几周(十进制数,00-53)
%x 适合于当前语言环境的日期表示形式
%X 适合于当前语言环境的时间表示形式
%y 不带世纪的年份(十进制数,00-99)
%Y 带世纪的年份(十进制数)
%z, %Z 时区名称或时区缩写
%% 百分号

请注意,此列表在一定程度上取决于操作系统,因此在所有平台上使用时,请不要依赖任何附加格式项目。

time (可选)

数字。如果存在 time 参数,则这是要格式化的事件(见 os.time() 函数,了解此 值的说明)。否则,os.date() 格式化当前事件。

示例

local date = os.date( "*t" )    -- Returns table of date & time values in local time
print( date.year, date.month )  -- Print year and month
print( date.hour, date.min )    -- Print hour and minutes
print( os.date( "%c" ) )        -- Print time/date string, for example "Thu Oct 23 14:55:02 2010"

local date = os.date( "!*t" )    -- Returns table of date & time values in UTC
print( date.year, date.month )  -- Print year and month
print( date.hour, date.min )    -- Print hour and minutes