Lua 的os.date()

Lua os.date()


os.date##

  • 原型:os.date ([format [, time]])
  • 解释:返回一个按format格式化日期、时间的字串或表。

usage##

  • 参数格式:
  • 由原型可以看出可以省略第二个参数也可以省略两个参数,只省略第二个参数函数会使用当前时间作为第二个参数,如果两个参数都省略则按当前系统的设置返回格式化的字符串,做以下等价替换 os.date() <=> os.date("%c")。
  • 如果format以“!”开头,则按格林尼治时间进行格式化。
  • 如果format是一个“*t”,将返一个带year(4位),month(1-12), day (1--31), hour (0-23), min (0-59),sec (0-61),wday (星期几, 星期天为1), yday (年内天数)和isdst (是否为日光节约时间true/false)的带键名的表;
  • 如果format不是“*t”,os.date会将日期格式化为一个字符串,具体如下:
格式符含义具体示例
%a一星期中天数的简写(Fri)
%A一星期中天数的全称(Wednesday)
%b月份的简写(Sep)
%B月份的全称(May)
%c日期和时间(09/16/98 23:48:10)
%d一个月中的第几天(28)[0 - 31]
%H24小时制中的小时数(18)[00 - 23]
%I12小时制中的小时数(10)[01 - 12]
%j一年中的第几天(209)[01 - 366]
%M分钟数(48)[00 - 59]
%m月份数(09)[01 - 12]
%P上午或下午(pm)[am - pm]
%S一分钟之内秒数(10)[00 - 59]
%w一星期中的第几天(3)[0 - 6 = 星期天 - 星期六]
%W一年中的第几个星期(2)0 - 52
%x日期(09/16/98)
%X时间(23:48:10)
%y两位数的年份(16)[00 - 99]
%Y完整的年份(2016)
%%字符串'%'(%)
  • 新建一个文件命名为datetest.lua编写如下代码:
print ("os.date example:\n")
print ("format = \"*t\" result:\n")
local timetable = os.date("*t", os.time());   -->os.date用法
for i, v in pairs(timetable) do
      print(i, v);
end

print ("\nformat start with \"!\" result:\n")
local utimetable = os.date("!*t", os.time()); -->os.date用法
for i, v in pairs(utimetable) do
      print(i, v);
end

print ("\nother format result:\n")
print(os.date("today is %c, in %A"))         -->os.date用法
print(os.date("1060004s is %x", 1060004))
  • 运行结果

date.png

总结#

  • 注意format "!" 的用法,因为我们的时间(北京)处于东8区,所以两次的结果会差8个小时,从结果中可以看出。
  • 注意使用format "*t"返回的table中wday如果是1表示星期天,而使用通用格式时%w用0表示星期天。
  • https://www.jianshu.com/p/76ac11863591

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`os.date` 是 Lua 标准库中的一个函数,用于格式化日期和时间。它的语法如下: ```lua os.date(format [, time]) ``` 其中,`format` 是格式化字符串,用于指定输出的日期和时间格式,它由以下格式化选项组成: | 格式化选项 | 说明 | | --- | --- | | `%a` | 星期几的缩写(例如:`Mon`) | | `%A` | 星期几的全名(例如:`Monday`) | | `%b` | 月份的缩写(例如:`Jan`) | | `%B` | 月份的全名(例如:`January`) | | `%c` | 日期和时间(例如:`Mon Jan 7 13:23:56 2019`) | | `%d` | 月份中的第几天(例如:`07`) | | `%H` | 小时(24 小时制,例如:`13`) | | `%I` | 小时(12 小时制,例如:`01`) | | `%j` | 年份中的第几天(例如:`007`) | | `%m` | 月份(例如:`01`) | | `%M` | 分钟(例如:`23`) | | `%p` | 上午或下午(例如:`PM`) | | `%S` | 秒(例如:`56`) | | `%w` | 星期几的数字表示(0~6,其中 0 表示星期天) | | `%x` | 日期(例如:`01/07/19`) | | `%X` | 时间(例如:`13:23:56`) | | `%y` | 年份的后两位(例如:`19`) | | `%Y` | 年份的完整表示(例如:`2019`) | | `%z` | 时区偏移量(例如:`-0800`) | `time` 是可选的,用于指定要格式化的日期和时间,它的类型可以是数字或者一个 `os.time()` 返回的时间表。如果不指定 `time`,则默认使用当前的系统时间。 以下是一些示例: ```lua -- 输出当前时间的完整表示 print(os.date("%c")) -- 输出当前时间的日期部分(例如:01/07/19) print(os.date("%x")) -- 输出当前时间的时间部分(例如:13:23:56) print(os.date("%X")) -- 输出当前时间的小时数(例如:13) print(os.date("%H")) -- 输出当前时间的分钟数(例如:23) print(os.date("%M")) -- 输出当前时间的秒数(例如:56) print(os.date("%S")) -- 输出当前时间的星期几的全名(例如:Monday) print(os.date("%A")) -- 输出当前时间的月份的缩写(例如:Jan) print(os.date("%b")) -- 输出当前时间的年份的完整表示(例如:2019) print(os.date("%Y")) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值