lua os.date函数定义和示例
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`.
---@overload fun():string|table
---@param format string
---@param time number
---@return string|table
function 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);
end
print ("\n \"!\" 开头:\n")
local utimetable = os.date("!*t", os.time());
for i, 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
- 注意format "!" 的用法,因为我们的时间(北京)处于东8区,所以两次的结果会差8个小时(13+8=21),从结果中可以看出。
 - 注意使用format "*t"返回的table中wday如果是1表示星期天,而使用通用格式时%w用0表示星期天。
 
参考:https://www.jianshu.com/p/76ac11863591
lua os.date函数定义和示例的更多相关文章
- 【Unity游戏开发】Lua中的os.date和os.time函数
		
一.简介 最近马三在工作中经常使用到了lua 中的 os.date( ) 和 os.time( )函数,不过使用的时候都是不得其解,一般都是看项目里面怎么用,然后我就模仿写一下.今天正好稍微有点空闲时 ...
 - Lua的API函数
		
1. 基础库 我们在整个教程中使用了各种主题下的基本库. 下表提供了相关页面的链接,并列出了本Lua教程各部分所涵盖的功能. 编号 库/方法 作用 1 错误处理 包括错误处理函数,如断言, 错误,如L ...
 - 不要在Lua中使用os.clock()函数
		
1.os.clock函数的实现是调用了c语言的函数函数库,实现代码如下: static int os_clock (lua_State *L) { lua_pushnumber(L, ((lua_Nu ...
 - lua函数定义
		
FuncState proto结构数组保存函数原型信息;prev保存父函数体指针:actvar保存定义的局部变量:upvalues保存upvalue Lua源码中,专门有一个结构体FuncState用 ...
 - Lua学习---函数定义
		
1.函数定义的格式: Lua使用function定义函数,语法如下: function function_name (arc) --arc表示参数列表,函数的参数列表可以为空 --body end 上 ...
 - python预课03 三元表达式示例,函数定义示例,七段彩码管绘制示例
		
三元表达式 s = '不下雨' if s == '下雨': print('带伞') if s == '不下雨': print('不带伞') #等效与以下语句 print('带伞' if s == '下 ...
 - Lua 学习之基础篇五<Lua OS 库>
		
lua os库提供了简单的跟操作系统有关的功能 1.os.clock() 返回程序所运行使用的时间 local nowTime = os.clock() print("now time is ...
 - lua学习之函数篇
		
函数 函数是对语句和表达式进行抽象的主要机制 两种用法 一是可以完成特定的任务,一句函数调用被视为一条语句 二是以只用来计算并返回特定的结果,视为一句表达式 print("Hello, Wo ...
 - 三种语言(c++、as、lua)中函数的差异性
		
对于不同的语言, 尤其是静态语言和动态语言, 对于函数的定义(即如何看待一个函数)和处理截然不同.具体来说可以分为两类: 1.将函数视为第一类型值, 即函数和其他的对象一样, 都是语言中一个普通的对象 ...
 
随机推荐
- alter session set current_schema=Schema
			
使用CURRENT_SCHEMA之后,当前会话所参考的默认SCHEMA变为设置的用户,而不再是当前的用户:其实需要稍微理解一下user和schema的区别先:user即oracle中的用户,和所有系统 ...
 - SQL优化--inner、left join替换in、not in、except
			
新系统上线,用户基数16万,各种查询timeout.打开砂锅问到底,直接看sql语句吧,都是泪呀,一大堆in\not in\except.这里总结一下,怎么替换掉in\not in\except. 1 ...
 - 事务及其特性ACID
			
一.事务的定义 事务是一组单元化的操作,这组操作可以保证要么全部成功,要么全部失败(只要有一个失败的操作,就会把其他已经成功的操作回滚). 一般所说的数据库事务,它是访问并可能更新数据库中各种数据项的 ...
 - golang 变量定义
			
package main import "fmt" var luckyNum = 6 var luckyStr = "love" //myNum := 6 // ...
 - pgsql sql 统计整理
			
字符字段转整型查询: SELECT mon_id as staTime,SUM (CAST ( index_value AS INT )) AS totalCount FROM aidata.rep_ ...
 - 原生的 django 分页
			
原始的 django 分页 # 基本 写法 class Paginator(object): def __init__(self, object_list, per_page, orphans=0, ...
 - Cocos Creator—优化首页打开速度
			
Cocos Creator是一个优秀的游戏引擎开发工具,很多地方都针对H5游戏做了专门的优化,这是我比较喜欢Cocos Creator的一点原因. 其中一个优化点是首页的加载速度,开发组为了加快首页的 ...
 - Node.js 事件循环机制
			
Node.js 采用事件驱动和异步 I/O 的方式,实现了一个单线程.高并发的 JavaScript 运行时环境,而单线程就意味着同一时间只能做一件事,那么 Node.js 如何通过单线程来实现高并发 ...
 - 我是如何拿到蚂蚁金服 offer 的 ?
			
阅读本文大概需要 5.6 分钟. 作者:翟洪毅 一.梦想和被拒 二.积累 三.结语 首先介绍一下投稿作者 翟洪毅,16年华理计算机本科毕业.在年前拿到了蚂蚁金服Java开发的offer,P6. 工 ...
 - javaScript设计模式--观察者模式(observer)
			
观察者模式(observer):又被称为 发布-订阅者模式或者消息机制,定义了一种依赖关系,解决了主体对象与观察者之间功能耦合. 一.这样的需求 在实现自己的需求,而添加一些功能代码,但是又不想新添加 ...