• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

lua的os.dateos.time

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

lua  的 os.date  跟 shell的 date 功能一样强大。

关于的时间的概念梳理:

  1. 格林威治时间GMT时间是我们平时使用的时间,世界各地的时间不一样是因为时区不一样,国内基本统一使用的北京时间,

    时区是东八区。http://www.24timemap.com/   所以世界在同一时刻的时间是不一致的。

  2. UTC时间 是 世界标准时间/原子时间,在时间上尽量接近于世界时的一种时间计量系统,这套时间基本用于互联网时间标准中。

  3. UTC时间跟 GMT 时间是一样的,都与英国伦敦的本地时间相同,含义也相同。

  4. 时区里的东区是比西区快,北京早上8点,意味着伦敦时间是凌晨0点,而美国那边的时间是昨天晚上时间【这个昨天是相对于我们来说的】。

一、时间的3种格式

  先来看看日常 时间表示的 3种格式:

  1、 时间戳形式表示:time=1587115724,这个是以秒为单位的 格林威治时间GMT,不同地区的格林威治时间不一样有时差,但是时间戳一致。

  2、用字符串表示:time="2020-11-11 22:12:32"  

  3. table形式表示:{"sec":13,"min":50,"day":18,"isdst":false,"wday":7,"yday":109,"year":2020,"month":4,"hour":15}

 

二、os.date 函数

  lua 的os.date 函数获取:

  原型:os.date (  [format   [, time]]  )

  解释:返回 format格式的 关于时间的 字符串或者table。

  1. 两个参数都是可以省略的。省略两个参数:按当前系统的设置返回格式化的字符串 ;

  2. 只省略第二个参数函数会使用当前时间作为第二个参数 ;第二个参数是数字或者字符串格式的数字

  3. 如果format以“!”开头,则按格林尼治时间进行格式化;

  4. 如果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)的带键名的表;

   5. 如果format不是“*t”,os.date会将日期格式化为一个字符串,具体如下:

  
   6. 示例:
cjson=require "cjson"

print("省略两个参数:",os.date())
print("省略第二个参数,会拿当前时间作为第二个参数:",os.date("%c"))
print("\n第一个参数是format格式化参数")
print("format  带 ! :",cjson.encode(os.date("!*t")))
print("format不带 ! :",cjson.encode(os.date("*t")))

print("\n第二个参数是时间戳")
time=os.time()
print("获取一个当前的时间戳: ",time)
print("format  带 ! :",cjson.encode(os.date("!*t",time)))
print("format不带 ! :",cjson.encode(os.date("*t",time)))

print("一星期中的第几天:",cjson.encode(os.date("%w",time)))
print("星期几 :",cjson.encode(os.date("%a",time)))
print("星期几 :",cjson.encode(os.date("%A",time)))

    运行结果:

     细节:注意format "!" 的用法,因为我们的时间(北京)处于东8区,所以两次的结果会差8个小时,从结果中可以看出。

       注意使用format "*t"返回的table中wday如果是1表示星期天,而使用通用格式时%w用0表示星期天。

  

三、os.time 函数

  原型:os.time (  [table]  )

 

  解释:如果没有任何参数,会返回当前时间【时间戳形式】,如果参数是table,并且table的域必须有 year, month, day,

       可有也可以没有 hour, min, sec, isdst,则会返回table所代表日期的时间,如果未定义后几项,默认时间为当天正午(12:00:00)。

  示例:

print("不带参数:",os.time())
print("table参数不全:",os.time({day=26,month=4,year=2020}))

print("\n跟 os.date()  结合 使用")
print(os.date("%B %A %y-%m-%d, %H:%M:%S",os.time({day=26,month=4,year=2020})))

 

  结果:


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Lua数据类型发布时间:2022-07-22
下一篇:
零基础使用cocos2dx-lua和skynet全栈式开发网游一(前言)发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap