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.将函数视为第一类型值, 即函数和其他的对象一样, 都是语言中一个普通的对象 ...
随机推荐
- 21 , CSS 构造模型
1. div 2. 边距 3. 边框 4. 定位 5. 浮动 1 21.1 div 部分(division)---<div>元素,经常以 div 形式引用---是 XHTML 元素,用于 ...
- ArcGIS注册数据库问题分析
本文是'猴妹'师妹授权给我来发表的,介绍都是师妹的研究成果,在此,非常感谢'猴妹'师妹. 用ArcGIS Server在发布地图服务时,注册数据库是很常见的,几年前就开始注册数据库,直到昨天,才有点顿 ...
- android 自定义权限管理
在Android6.0后有些权限就需要进行询问,虽然可以将targetSdkVersion设置成小于等于23,但是这样可能有些东西无法使用,所以要进行权限的管理. 实现逻辑:打开页面就询问权限,如果没 ...
- Python之路【第四篇】:Python基础之函数
函数的理解 面向过程:根据业务逻辑从上到下垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 函数作用是你的程序有良好的扩展性.复用性. 同样的功能要是用3次以上的话就建议使 ...
- 两个inline-block中间有空白,解决inline-block 元素之间的空白问题
目录 一.遇到的问题 二.举个简单的栗子分析问题 三.解决办法 一.遇到的问题 前些天写瀑布流布局的时候,发现明明计算好了宽度使得一行能放下三张图片,实际效果却总是放不下,图片会挤到下一行去.上图: ...
- 第1章 程序设计和C语言
1.1什么是计算机程序 程序,就是一组计算机能识别和执行的指令.每一条指令使计算机执行特定的操作.只要让计算机执行这个程序,计算机就会“自动地”执行各条指令,有条不紊地进行工作. 1.2什么是计算机语 ...
- 【深度学习】--DCGAN从入门到实例应用
一.前述 DCGAN就是Deep Concolutions应用到GAN上,但是和传统的卷积应用还有一些区别,最大的区别就是没有池化层.本文将详细分析卷积在GAN上的应用. 二.具体 1.DCGAN和传 ...
- Mybatis之旅第一篇-初识Mybatis
一.JDBC的问题 为什么我们要使用Mybatis,是因为JDBC存在以下问题 1. 数据库连接创建.释放频繁造成系统资源浪费,从而影响系统性能.如果使用数据库连接池可解决此问题. 2. Sql语句在 ...
- Java基础知识回顾之六 ----- IO流
前言 在上一篇文章中,回顾了Java的多线程.而在本篇文章中主要介绍Java IO的相关知识. IO的介绍 什么是IO? IO的名称又来是Input与Output的缩写,也就是输入流和输出流.输入流用 ...
- ubuntu16.04下编译安装vim8.1
之前写过一篇centos7下编译安装vim8.0的教程,ubuntu16.04相比centos7下安装过程不同在于依赖包名字的不同,其余都是一样.下面给出ubuntu16.04编译安装vim8.0需要 ...