zoukankan      html  css  js  c++  java
  • lua 的 os.date os.time

    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("
    第一个参数是format格式化参数")
    print("format  带 ! :",cjson.encode(os.date("!*t")))
    print("format不带 ! :",cjson.encode(os.date("*t")))
    
    print("
    第二个参数是时间戳")
    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("
    跟 os.date()  结合 使用")
    print(os.date("%B %A %y-%m-%d, %H:%M:%S",os.time({day=26,month=4,year=2020})))

      结果:

  • 相关阅读:
    swift 上的 lazy
    oc runtime
    iOS布局
    ios微信支付 v3
    好用的工具
    自己曾经没注意的东西
    根据文字计算出label的高度
    项目swift的一些问题
    UIAppearance
    书签
  • 原文地址:https://www.cnblogs.com/chenpython123/p/12726690.html
Copyright © 2011-2022 走看看