在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
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})))
结果:
|
请发表评论