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.将函数视为第一类型值, 即函数和其他的对象一样, 都是语言中一个普通的对象 ...
随机推荐
- 使用d3.v5实现条形图
效果图: 条形图: 目录结构: <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- Tomcat更新方法
tomcat更新方法最简单的就是上官网下载最新版的压缩包,然后用新版本的 lib 文件替换掉旧版本的 lib 文件 具体方法(偷懒做个搬运工):https://jingyan.baidu.com/ar ...
- 做了这么多年java开发,关于 Long 和 BigDecimal 的相等比较,你可不一定能准确回答下面 26 个问题
Java 里面的 == 和equals的坑是在是太多了,即使做了多年java开发的程序员也不一定就能准确说出 a == b 或 a.equals(b) 这样简单的问题的答案. 请看下面这26道关于Lo ...
- 吴恩达机器学习笔记61-应用实例:图片文字识别(Application Example: Photo OCR)【完结】
最后一章内容,主要是OCR的实例,很多都是和经验或者实际应用有关:看完了,总之,善始善终,继续加油!! 一.图像识别(店名识别)的步骤: 图像文字识别应用所作的事是,从一张给定的图片中识别文字.这比从 ...
- 你连Nginx怎么转发给你请求都说不清楚,还好意思说自己不是CRUD工程师?
目录 一.Nginx工作原理二.Nginx进程模型三.Nginx处理HTTP请求流程 Nginx 工作原理 Nginx由内核和模块组成,Nginx本身做的工作实际很少,当它接到一个HTTP请求时,它仅 ...
- 解决 React-Native mac 运行报错 error Failed to build iOS project. We ran "xcodebuild" command but it exited with error code 65. To debug build logs further, consider building your app with Xcode.app, by ope
React-Native 开发的项目,Android 方面没有任何问题,IOS 就是无法跑起来,报错信息如下: mac 10.14.4 xcode 10.2.1 error Failed to bui ...
- 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之三 || Swagger的使用 3.1
常见问题 1.经常有小伙伴遇到这个错误 这是因为接口json文档定义和调用不是一个 1.定义: ConfigureServices 方法中的 services.AddSwaggerGen 注册的一个 ...
- DotNetCore跨平台~组件化时代来了
回到目录 进行dotnetcore之后,各种对象都是基于DI进行生产的,这就有了对象的生命周期一说,早在autofac里也有相关知识点,这与Microsoft.Extensions.Dependenc ...
- 全文检索-Elasticsearch (三) DSL
DSL:elasticsearch查询语言elasticsearch对json 的语法有严格的要求,每个json串不能换行,同时一个json串和一个json串之间,必须有一个换行 DSL(介绍查询语言 ...
- Python爬虫实例:爬取猫眼电影——破解字体反爬
字体反爬 字体反爬也就是自定义字体反爬,通过调用自定义的字体文件来渲染网页中的文字,而网页中的文字不再是文字,而是相应的字体编码,通过复制或者简单的采集是无法采集到编码后的文字内容的. 现在貌似不少网 ...