Lua os.date()

作者: AlbertS | 来源:发表于2016-07-09 23:28 被阅读10051次

    前言#

    接触过linux系统的人大概都知道linux系统的中date命令有多么的强大,单单是那些可选参数都让人眼花缭乱,今天你会发现lua中的os.date函数和linux中的date命令一样强大,下面我们来看看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]
    %H 24小时制中的小时数 (18)[00 - 23]
    %I 12小时制中的小时数 (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表示星期天。

    相关文章

      网友评论

        本文标题:Lua os.date()

        本文链接:https://www.haomeiwen.com/subject/pzwrjttx.html