openresty开发系列20--lua的时间操作
openresty开发系列20--lua的时间操作
在 Lua 中,函数 time、date 和 difftime 提供了所有的日期和时间功能。
在 OpenResty 的世界里,不推荐使用这里的标准时间函数,
因为这些函数通常会引发不止一个昂贵的系统调用,同时无法为 LuaJIT JIT 编译,对性能造成较大影响。
推荐使用 ngx_lua 模块提供的带缓存的时间接口,
如 ngx.today, ngx.time, ngx.utctime, ngx.localtime, ngx.now, ngx.http_time,以及 ngx.cookie_time 等。
一)os.time ([table])
它会返回当前的时间和日期的时间戳(精确到秒),如赋值table,表示此table指定日期的时间戳
字段名称 取值范围
year 四位数字
month 1--12
day 1--31
hour 0--23
min 0--59
sec 0--59
isdst boolean(true表示夏令时)
对于 time 函数,如果参数为 table,那么 table 中必须含有 year、month、day 字段。
其他字缺省时段默认为中午(12:00:00)。
print(os.time())
a = { year = 2018, month = 1, day = 30, hour = 0, min = 0, sec = 0 }
print(os.time(a))
时间戳的是以计算机最小时间和指定时间之间相差的秒数,计算机最小时间为1970-1-1 00:00:00(美国时区),
针对中国时区就是1970-1-1 08:00:00
a = { year = 1970, month = 1, day = 1, hour = 8, min = 0, sec = 1 }
print(os.time(a))
输出的就是1秒
二)os.difftime (t2, t1)
返回 t1 到 t2 的时间差,单位为秒。
local day1 = { year = 2018, month = 1, day = 30 }
local t1 = os.time(day1)
local day2 = { year = 2018, month = 1, day = 31 }
local t2 = os.time(day2)
print(os.difftime(t2, t1))
--->output:86400
三)os.date ([format [, time]])
把一个表示日期和时间的数值,转换成更高级的表现形式。
格式字符 含义
%a 一星期中天数的简写(例如:Wed)
%A 一星期中天数的全称(例如:Wednesday)
%b 月份的简写(例如:Sep)
%B 月份的全称(例如:September)
%c 日期和时间(例如:07/30/15 16:57:24)
%d 一个月中的第几天[01 ~ 31]
%H 24小时制中的小时数[00 ~ 23]
%I 12小时制中的小时数[01 ~ 12]
%j 一年中的第几天[001 ~ 366]
%M 分钟数[00 ~ 59]
%m 月份数[01 ~ 12]
%p "上午(am)"或"下午(pm)"
%S 秒数[00 ~ 59]
%w 一星期中的第几天[0 ~ 6 = 星期天 ~ 星期六]
%x 日期(例如:07/30/15)
%X 时间(例如:16:57:24)
%y 两位数的年份[00 ~ 99]
%Y 完整的年份(例如:2015)
%% 字符'%'
print(os.date("today is %A, in %B"))
print(os.date("now is %x %X"))
print(os.date("%Y-%m-%d %H:%M:%S"))
-->output
today is Thursday, in July
now is 07/30/15 17:39:22
2018-03-29 22:36:05
---------------------------
t = os.date("*t", os.time());
for i, v in pairs(t) do
print(i, v);
end
yday 120 --一年中的第几天,一月一日为1
month 4
sec 9
min 9
hour 16
day 30
year 2018
isdst false --是否夏令时
wday 2 --一周第几天 星期日为1
openresty开发系列20--lua的时间操作的更多相关文章
- openresty开发系列27--openresty中封装redis操作
openresty开发系列27--openresty中封装redis操作 在关于web+lua+openresty开发中,项目中会大量操作redis, 重复创建连接-->数据操作-->关闭 ...
- openresty开发系列40--nginx+lua实现获取客户端ip所在的国家信息
openresty开发系列40--nginx+lua实现获取客户端ip所在的国家信息 为了实现业务系统针对不同地区IP访问,展示包含不同地区信息的业务交互界面.很多情况下系统需要根据用户访问的IP信息 ...
- openresty开发系列18--lua的字符串string操作
openresty开发系列18--lua的字符串string操作 string的相关操作 1)string.upper(s)接收一个字符串 s,返回一个把所有小写字母变成大写字母的字符串.print( ...
- openresty开发系列39--nginx+lua实现接口签名安全认证
一)需求背景现在app客户端请求后台服务是非常常用的请求方式,在我们写开放api接口时如何保证数据的安全,我们先看看有哪些安全性的问题 请求来源(身份)是否合法?请求参数被篡改?请求的唯一性(不可复制 ...
- openresty开发系列28--openresty中操作mysql
openresty开发系列28--openresty中操作mysql Mysql客户端 应用中最常使用的就是数据库了,尤其mysql数据库,那openresty lua如何操作mysql呢? ...
- openresty开发系列24--openresty中lua的引入及使用
openresty开发系列24--openresty中lua的引入及使用 openresty 引入 lua 一)openresty中nginx引入lua方式 1)xxx_by_lua ---> ...
- openresty开发系列19--lua的table操作
openresty开发系列19--lua的table操作 Lua中table内部实际采用哈希表和数组分别保存键值对.普通值:下标从1开始 不推荐混合使用这两种赋值方式. local color={fi ...
- openresty开发系列38--通过Lua+Redis 实现动态封禁IP
openresty开发系列38--通过Lua+Redis 实现动态封禁IP 一)需求背景为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单.对于黑名单之内的 IP ,拒绝 ...
- openresty开发系列30--openresty中使用全局缓存
openresty开发系列30--openresty中使用全局缓存 Nginx全局内存---本地缓存 使用过如Java的朋友可能知道如Ehcache等这种进程内本地缓存.Nginx是一个Master进 ...
随机推荐
- PAT1016 × PAT1017
本次题解是综合1016和1017两道题来讲解,原因无他,因为这两道都是模拟题,综合字符串处理.排序等考点 接手一道模拟题,一定要快速且准确地了解模拟的过程,清晰题目涉及的关键信息.比如1016要计算电 ...
- 用chrome浏览器进行前端debug和停止debug
首先F12打开控制台: 选择"source","Ctrl+Shift+F"搜索需要debug的代码关键词(Ctrl+O根据文件名搜索): 打开需要debug的文 ...
- 29.LINQ初探
本页内容: 1.LINQ查询语言的组成部分: 2.使用LINQ方法语法: 3.排序查询结果 orderby 字句: 4.聚合运算符: 5.查询复杂对象: 6.投影:在查询中创建新对象: 7.Disti ...
- python网络-HTTP协议(28)
一.服务器和客户端介绍 1.什么是服务器? 简而言之:提供服务的机器就是服务器,至于提供什么服务不重要,重要的是要给其他人提供服务.例如:FTP服务器可以提供文件下载,SMTP服务器等等,不同的服务器 ...
- LG5487 【模板】线性递推+BM算法
[模板]线性递推+BM算法 给出一个数列 \(P\) 从 \(0\) 开始的前 \(n\) 项,求序列 \(P\) 在\(\bmod~998244353\) 下的最短线性递推式,并在 \(\bmod~ ...
- 神经网络(12)--具体实现:如何对back propagation的正确性进行验证
我们在进行back propagation时难免会出现各种各样的问题,当出现问题的时候,我们的cost function仍然是随着迭代的次数下降的,但是这中间会有一些问题存在,那么我们如何来检查我们的 ...
- 文件操作-with和上下文管理器
代码: # -*- coding:utf-8 -*- # 普通版 如果写入的过程中出错 则不会释放资源 def m1(): f = open("test.txt","w& ...
- LightOJ - 1410 - Consistent Verdicts(规律)
链接: https://vjudge.net/problem/LightOJ-1410 题意: In a 2D plane N persons are standing and each of the ...
- go mod
https://blog.csdn.net/zzhongcy/article/details/97243826 来自为知笔记(Wiz)
- centOS下实践查询版本/CPU/内存/硬盘容量等硬件信息
更详细参考: https://blog.csdn.net/dream_broken/article/details/52883883 1.查看内存 DirectMap2M: 33544192 kB [ ...