lua os.date函数定义和示例

lua os.date函数定义和示例,第1张

概述os.date函数定义 原型:os.date ([format [, time]]) 解释:返回一个按format格式化日期、时间的字串或表。 lua源码中os.date的注释如下: ------ Returns a string or a table containing date and time, formatted according--- to the given string `f os.date函数定义 原型:os.date ([format [,time]]) 解释:返回一个按format格式化日期、时间的字串或表。

lua源码中os.date的注释如下:

------ Returns a string or a table containing date and time,formatted according--- to the given string `format`.------ If the `time` argument is present,this is the time to be formatted (see--- the `os.time` function for a description of this value). Otherwise,--- `date` formats the current time.------ If `format` starts with '`!`',then the date is formatted in Coordinated--- Universal Time. After this optional character,if `format` is the string--- "`*t`",then `date` returns a table with the following fIElds:------ **`year`** (four digits)--- **`month`** (1–12)--- **`day`** (1-31)--- **`hour`** (0-23)--- **`min`** (0-59)--- **`sec`** (0-61),due to leap seconds--- **`wday`** (weekday,1–7,Sunday is 1)--- **`yday`** (day of the year,1–366)--- **`isdst`** (daylight saving flag,a boolean). This last fIEld may be absent--- if the information is not available.------ If `format` is not "`*t`",then `date` returns the date as a string,--- formatted according to the same rules as the ISO C function `strftime`.------ When called without arguments,`date` returns a reasonable date and time--- representation that depends on the host system and on the current locale.--- (More specifically,`os.date()` is equivalent to `os.date("%c")`.)------ On non-POSIX systems,this function may be not thread safe because of its--- reliance on C function `gmtime` and C function `localtime`.[email protected] fun():string|table[email protected] format string[email protected] time number[email protected] string|tablefunction os.date(format,time) end
os.date格式符对照表

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

由原型可以看出可以省略第二个参数也可以省略两个参数,

只省略第二个参数函数会使用当前时间作为第二个参数,

如果两个参数都省略则按当前系统的设置返回格式化的字符串,做以下等价替换 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 一星期中天数的简写 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)
%% 字符串‘%‘ (%)
*t 返回一个table,里面包含全部的数据 hour 14
使用示例

我的lua版本:lua5.3

print ("os.date(\"*t\") 示例:\n")local timetable = os.date("*t",os.time());for i,v in pairs(timetable) do    print(i,v);endprint ("\n \"!\" 开头:\n")local utimetable = os.date("!*t",v in pairs(utimetable) do    print(i,v);endprint ("\n其它用法:\n")print(os.date("今天是 %c,星期 %A"))

输出结果:

今天东八区中国广州的日期为:2018-11-1 21:13 星期四

os.date("*t") 示例:wday    5year    2018day     1sec     51hour    21isdst   falsemonth   11yday    305min     13
os.date("!*t") 示例:wday    5year    2018day     1sec     38hour    13  --- 差8小时isdst   falsemonth   11yday    305min     14
今天是 11/01/18 21:15:36,星期 Thursday
注意format "!" 的用法,因为我们的时间(北京)处于东8区,所以两次的结果会差8个小时(13+8=21),从结果中可以看出。 注意使用format "*t"返回的table中wday如果是1表示星期天,而使用通用格式时%w用0表示星期天。

参考:https://www.jianshu.com/p/76ac11863591

总结

以上是内存溢出为你收集整理的lua os.date函数定义和示例全部内容,希望文章能够帮你解决lua os.date函数定义和示例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1234547.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存