zoukankan      html  css  js  c++  java
  • 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参数,指定一个时间,返回时间的数值格式.
    例如:

    local tab = {year=2005, month=11, day=6, hour=22,min=18,sec=30,isdst=false}
    --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函数的第二个参数指定一个时间数值。

    例如:

    local tab = os.date("*t", 1131286710);
    --返回值 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 完全相同

    例如:

    win.consoleOpen()
    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.time()
    获取当前秒
     
  • 相关阅读:
    python 抓取网页
    Vim XDebug调试PHP php远程调试
    10 条 nmap 技巧
    Linux修改文件及文件夹权限
    mysql 常用命令 汇总
    VS2010打开过多的IntelliTrace.exe进程导致虚拟内存不足的解决办法
    黄聪:MYSQL远程连接失败:ERROR 1130: mysql 1130连接错误的有效解決方法
    黄聪:WordPress搬家更换域名教程
    黄聪:使用 ALinq 实现 Linq to MySQL【转】
    黄聪:Filezilla 二进制上传设定
  • 原文地址:https://www.cnblogs.com/caymanlu/p/5777658.html
Copyright © 2011-2022 走看看