lua语言:时间
转载请注明来源:https://www.cnblogs.com/hookjc/
时间库函数
1、用数值表示时间值
用数字值来表示时间值,
实际上时间值的本质就是一个数字值。
例如:
d = 1131286477
这里的 1131286477 是一个以秒为单位的 格林威志时间(gmt),注意不同时区的时差
2、用字符串表示时间
用字符串来来表示时间。
例如:
d = "2005-11-06 22:18:30" --2005年11月6日 22点18分30秒
d = "11/06/2005 22:18:30" --即2005年11月6日 22点18分30秒
3、时间的列表格式
用table对象来表示时间
例如:
d = {year=2005, month=11, day=6, hour=22,min=18,sec=30,isdst=false}
--同样表示2005年11月6日 22点18分30秒,其中isdst=false表示不使用夏令时
我们可以这样访问时间列表 d.year = 2005;
二、取得数值(number)格式的时间值
time = os.time()
返回一个标准的number(数值)格式的时间值,这也是最原始的时间值
os.time()返回的时间是以秒为单位的。
1、获取当前时间数值
time = os.time();
--如果没有指定任何参数,则返回当前时间
2、通过table参数指定时间,获取指定的时间数值
time = os.time(tab);
通过一个table参数,指定一个时间,返回时间的数值格式.
例如:
--year表示年,month表示月,day表示日期,hour表示小时,min表示分钟,sec表示秒,isdst表示是否夏令时
time = os.time(tab) -->返回值为1131286710
三、取得列表(table)格式的时间
tab = os.date("*t",time)
可以将一个数值格式的时间转换为字符串或者列表
其中第一个参数指定返回的格式,如果第一个参数指定为"*t" 则返回一个table格式的时间。
第二个参数指定一个时间数值(以秒为单位)
1、获取当前时间的table格式
tab = os.date("*t")
如果不指定os.date的第二个参数,则返回当前时间的table表示格式
2、通过时间数值,获取指定时间的table格式
tab = os.date("*t", time)
通过os.date函数的第二个参数指定一个时间数值。
例如:
--返回值 tab 的数据 {year=2005, month=11, day=6, hour=22,min=18,sec=30}
--year表示年,month表示月,day表示日期,hour表示小时,min表示分钟,sec表示秒,isdst表示是否夏令时
--tab成包括一些其他的成员 tab.yday 表示一年中的第几天 tab.wday 表示星期几(星期天为1)
time = os.time(tab) -->返回值为1131286710
四、取得时间的字符串(string)格式
tab = os.date(format,time)
实际上与取得table格式的时间一样,同样是使用os.date参数,不同的是第一个参数
如果第一个参数不是"*t" os.date返回字符串
关于format参数使用的格式化语法,请参考:string.ftime格式化语法os.date 的用法与 string.ftime 完全相同
例如:
print( os.date("today is %A, in %B") )
print( os.date("%x", 906000490) )
--输出类似这样的字符串 09/16/1998
1、获取当前时间的字符串(string)格式
如果不指定os.date的第二个参数,则返回当前时间的table表示格式
例如:
str= os.date("*x")
2、通过时间数值,获取指定时间的(string)格式
通过os.date函数的第二个参数指定一个时间数值。
例如:
str= os.date("*x",1131286710)
3、获取时间的指定部份的(string)格式
例如:
str = os.date("%M") --返回当前时间分钟部份的字符串格式
五、时间数值与字符串之间的转换
请参考:string.time string.ftime 函数用法
六、计算时间值间隔
int = os.difftime(t2,t1);
t2,t1都是数值格式的时间值,返回值也是一个数值表示间隔的时间。
参数以及返回的时间值都是以秒为单位的数值格式。
local tab = {year=2005, month=11, day=6, hour=22,min=18,sec=30,isdst=false}
t1 = os.time(tab)
tab.day = tab.day +1;--前进一天
t2 = os.time(tab)
int = os.difftime(t2,t1);
win.messageBox(int.."秒","时间差"
七、系统时钟
int = os.tick();
读取系统时钟,以毫秒为单位。表示从系统启动到当前时刻所过去的毫秒数。
int = os.clock()
读取系统时钟,以秒为单位。表示从系统启动到当前时刻所过去的秒数。
因为内部实现的差异,os.tick 与 os.clock()的返回值并不完全一致。
来源:python脚本自动迁移
lua语言:时间的更多相关文章
- 51CTO专访淘宝清无:漫谈Nginx服务器与Lua语言
http://os.51cto.com/art/201112/307610.htm 说到Web服务器,也许你第一时间会想到Apache,也许你会想到Nginx.虽然说Apache依然是Web服务器的老 ...
- 【quick-cocos2d-x】Lua 语言基础
版权声明:本文为博主原创文章,转载请注明出处. 使用quick-x开发游戏有两年时间了,quick-x是cocos2d-Lua的一个豪华升级版的框架,使用Lua编程.相比于C++,lua的开发确实快速 ...
- Lua语言中文手册 转载自网络
Programming in LuaCopyright ® 2005, Translation Team, www.luachina.net Programming in LuaProgramming ...
- 用VC编译lua源码,生成lua语言的解释器和编译器
用VC编译lua源码,生成lua语言的解释器和编译器 1.去网址下载源码 http://www.lua.org/download.html 2.装一个VC++,我用的是VC6.0 3.接下来我们开始编 ...
- lua语言入门之Sublime Text设置lua的Build System
转自: http://blog.csdn.net/wangbin_jxust/article/details/8911956 最近开始学习LUA语言,使用Sublime Text作为编辑器,不得不说, ...
- 编译并使用Lua语言
Lua是一个小巧的脚本语言,该语言设计的目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. 可扩展性.Lua的扩展性非常卓越,可以通过Lua代码或C代码扩展,很多功能可以通过外部库来扩 ...
- Lua语言在Wireshark中使用(转)
1. 检查Wireshark的版本是否支持Lua 打开Wireshark,点击“HelpàAbout Wireshark”菜单,查看弹出的对话框,如果有“with Lua 5.1”表示支持 ...
- Unity进阶----Lua语言知识点(2018/11/08)
国内开发: 敏捷开发: 集中精力加班堆出来第一个版本 基本没啥大的bug 国外开发: 1).需求分析: 2).讨论 3).分模块 4).框架 5).画UML图(类图class function)(e- ...
- lua语言自学知识点----Lua与.Net相互调用
知识点: LuaInterface作用是用来完成Lua与C#的相互调用. LuaInterface核心库:1.luainterface.dll 用于C#读取lua(放在bin目录同级) 2.luane ...
- lua 语言笔记
Lua语言基础汇总(1) -- 类型与值 基础介绍 Lua是一种动态类型的语言.在语言中没有类型定义的语法,每个值都带有其自身的类型信息.在Lua中有8种基本类型,分别是: nil(空)类型 bool ...
随机推荐
- [opencv]drawContours 示例
vector<vector<Point>> contours; vector<Vec4i> hierarchy; findContours(img_canny,co ...
- Nginx部署及Web基础
目录 Nginx部署及Web基础 Nginx简介 Nginx特点 Web服务 Web服务器软件 Nginx和Apache对比图 部署Nginx yum安装 编译安装 平滑增加Nginx模块 Nginx ...
- SpringCloud创建Eureka模块
1.说明 本文详细介绍Spring Cloud创建Eureka模块的方法, 基于已经创建好的Spring Cloud父工程, 请参考SpringCloud创建项目父工程, 在里面创建Eureka模块, ...
- linux安装mysql以及使用navicat连接mysql
一.下载mysql 1.获取下载链接 进入官网:https://www.mysql.com 点击downloads --> MySQL Community (GPL) Downloads -- ...
- BrowserSync 本地服务器的起用
最简单粗暴的方法:进入项目根目录,执行命令browser-sync start --server --files "**" 监听所有
- jenkins学习9-测试报告发邮件(Email Extension Plugin)
前言 前面已经实现在jenkins上展示html的测试报告,接下来只差最后一步,把报告发给你的领导,展示你的劳动成果了. 安装 Email Extension Plugin 插件 jenkins首页- ...
- docker的安装以及使用命令
docker的安装 安装docker https://docs.docker.com/install/linux/docker-ce/centos/#set-up-the-repository 从 2 ...
- JVM完整详解:内存分配+运行原理+回收算法+GC参数等
不管是BAT面试,还是工作实践中的JVM调优以及参数设置,或者内存溢出检测等,都需要涉及到Java虚拟机的内存模型.内存分配,以及回收算法机制等,这些都是必考.必会技能. JVM内存模型 JVM内存模 ...
- 【刷题-LeetCode】150 Evaluate Reverse Polish Notation
Evaluate Reverse Polish Notation Evaluate the value of an arithmetic expression in Reverse Polish No ...
- 游戏mod启动器原理
基本原理 游戏程序会按一定顺序读取游戏文件夹根目录的文件. 所以我们制作mod和补丁的时候需要使得我们的文件先读取,从而使得后面读取到重复内容时候,游戏运行的内存中舍弃掉原本的文件. 游戏mod启动器 ...