os库-时间函数
一、时间的三种格式
1、用数值表示时间值 (时间戳)
用数字值来表示时间值,
实际上时间值的本质就是一个数字值。
例如:
d = 1131286477
这里的 1131286477 是一个以秒为单位的 格林威志时间(gmt),注意不同时区的时差
2、用字符串表示时间 (string)
用字符串来来表示时间。
例如:
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)
用table对象来表示时间
例如:
d = {year=2005, month=11, day=6, hour=22,min=18,sec=30,isdst=false}
--同样表示2005年11月6日 22点18分30秒,其中isdst=false表示不使用夏令时
--夏时制,夏时令(Daylight Saving Time:DST),又称“日光节约时制”和“夏令时间”,是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为“夏令时间”。一般在天亮早的夏季人为将时间提前一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。各个采纳夏时制的国家具体规定不同。目前全世界有近110个国家每年要实行夏令时。
我们可以这样访问时间列表 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)格式的时间(时间戳转换为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返回字符串
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()的返回值并不完全一致。
local getTime = os.date(“%c”);
其中的%c可以是以下的一种:(注意大小写)
%a | abbreviated weekday name (e.g., Wed) |
%A | full weekday name (e.g., Wednesday) |
%b | abbreviated month name (e.g., Sep) |
%B | full month name (e.g., September) |
%c | date and time (e.g., 09/16/98 23:48:10) |
%d | day of the month (16) [01-31] |
%H | hour, using a 24-hour clock (23) [00-23] |
%I | hour, using a 12-hour clock (11) [01-12] |
%M | minute (48) [00-59] |
%m | month (09) [01-12] |
%p | either “am” or “pm” (pm) |
%S | second (10) [00-61] |
%w | weekday (3) [0-6 = Sunday-Saturday] |
%x | date (e.g., 09/16/98) |
%X | time (e.g., 23:48:10) |
%Y | full year (1998) |
%y | two-digit year (98) [00-99] |
%% | the character ‘%’ |
如获取当前年月日时分秒:local date=os.date(“%Y-%m-%d %H:%M:%S”);
os库-时间函数的更多相关文章
- 第三方库-时间函数dateutil
在dateutil中,吸引我的东西有2个,1个是parser,1个是rrule. 其中parser是根据字符串解析成datetime,而rrule是则是根据定义的规则来生成datetime. 安装没必 ...
- 好用的在线工具汇总:Iconfont图标,数据mock,时间函数库,颜色查询 等
一 时间函数库 ———http://momentjs.com/ 非常全的时间处理函数库,引入使用非常方便. 二 Iconfont———http://www.iconfont.cn/ 各种小图标 ...
- Lua 之os库
标准os库 os.rename(oldname, newname) 文件重命名: os.remove(filename) 删除一个文件 os.execute(cmd) os.execute可运行一条系 ...
- Lua 学习之基础篇五<Lua OS 库>
lua os库提供了简单的跟操作系统有关的功能 1.os.clock() 返回程序所运行使用的时间 local nowTime = os.clock() print("now time is ...
- python os库的使用方法 + 自动化安装第三方库脚本
一.os库基本介绍 os库提供通用的.基本的操作系统交互功能,包括windows.Mac os.linux os库是python标准库,包含几百个函数 常用路径操作.进程管理.环境参数等几类 路径操作 ...
- Python OS模块常用函数说明
Python的标准库中的os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Wi ...
- Loadrunner时间函数、用时间生成订单编号例子
Loadrunner中取时间函数.用时间函数生成订单编号例子: <如要转载,请注明网络来源及作者:Cheers_Lee> 问题的提出: (1)有时候在Loadrunner中用C语言设计脚本 ...
- php日期时间函数和数学函数
<?php //第一部分:日期和时间函数 ----------------------------- time(); //int time(void),返回当前时间的时间戳 mktime(); ...
- php时间函数time(),date(),mktime()区别
php时间函数time(),date(),mktime()区别 浏览:1161 发布日期:2014/12/18 分类:系统代码 关键字: php时间函数 time() date()mktime() ...
随机推荐
- MongoDB学习之--增删改查(2)
昨天简单介绍了官方驱动操作MongoDB进行增删查操作的,今天继续介绍更新操作..... 方法简介 官方驱动中更新操作使用collection的Update方法,有泛型和非泛型两个版本: 其签名如下( ...
- RTB撕开黑盒子 Part 3: Beyond Surplus
在本文中,我将解释如果要对整个推广计划最大化利润,决定是否应该出价的应该是期望回本率(ROI),而不是期望利润,这与我们以前介绍的有所不同.在Datacratic,我们已经在2012年底切到了基于RO ...
- T-SQL 临时表、表变量、UNION
T-SQL 临时表.表变量.UNION 这次看一下临时表,表变量和Union命令方面是否可以被优化呢? 阅读导航 一.临时表和表变量 二.本次的另一个重头戏UNION 命令 一.临时表和表变量 很多数 ...
- MySQL 的 phpmyadmin上传大小限制(转)以及 MySQL server has gone away 的解决办法
phpmyadmin上传大小限制 原帖地址:http://www.hmidc.com/home/news/?13914.html 时间:2011-6-21 11:17:57 作者:红帽之家 来源: ...
- Docker容器内存监控
linux内存监控 要明白docker容器内存是如何计算的,首先要明白linux中内存的相关概念. 使用free命令可以查看当前内存使用情况. [root@localhost ~]$ free tot ...
- .Net程序员学用Oracle系列(8):触发器、任务、序列、连接
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.触发器 1.1.创建触发器 1.2.禁用触发器 & 启用触发器 & 删除触发器 2.任务 2.1.DBMS_ ...
- MVC源码解析 - HttpRuntime解析
先看一张图, 从这张图里, 能看到请求是如何从CLR进入HttpRuntime的. 一.AppManagerAppDomainFactory 看到这张图是从 AppManagerAppDomainFa ...
- 使用div模拟textarea,实现文本输入框高度自适应(附:js控制textarea实现文本输入框高度自适应)
一.使用textarea标签进行多行文本的输入有很多限制,比如不能实现高度自适应,会出现难看的滚动条等问题. HTML5中添加了一个新属性contenteditable,该属性可以让input,tex ...
- iOS开发-OC语言 (七)继承、多态、类别
继承.多态.类别 学习目标 1.继承的含义 2.父类子类的别称 3.字段和消息的继承 4.重写和重写消息的调用 5.多态 6.类别(Category) ======================== ...
- margin塌陷现象(即在内层设置margin-top无效的解决办法)
有两个有嵌套关系的div,如果外层div的父元素的padding值为0,那么内层子div的margin-top或margin-bottom的值会转移给外层的父div,即magrin塌陷现象. 解决办法 ...