lua os.date函数定义和示例
os.date函数定义
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|table function os.date(format,time) end os.date格式符对照表
由原型可以看出可以省略第二个参数也可以省略两个参数, 只省略第二个参数函数会使用当前时间作为第二个参数, 如果两个参数都省略则按当前系统的设置返回格式化的字符串,做以下等价替换 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会将日期格式化为一个字符串,具体如下:
使用示例我的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); end print ("n "!" 开头:n") local utimetable = os.date("!*t",v in pairs(utimetable) do print(i,v); end print ("n其它用法:n") print(os.date("今天是 %c,星期 %A")) 输出结果: 今天东八区中国广州的日期为:2018-11-1 21:13 星期四 os.date("*t") 示例: wday 5 year 2018 day 1 sec 51 hour 21 isdst false month 11 yday 305 min 13 os.date("!*t") 示例: wday 5 year 2018 day 1 sec 38 hour 13 --- 差8小时 isdst false month 11 yday 305 min 14 今天是 11/01/18 21:15:36,星期 Thursday
参考:https://www.jianshu.com/p/76ac11863591 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |