美文网首页
时间戳、时间和时区

时间戳、时间和时区

作者: 天涯西剑 | 来源:发表于2019-11-05 09:04 被阅读0次

    时间戳

    时间戳是容易理解的。

    时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数

    我们先可以将其理解为历史上某一时刻距离现在的秒数,显然这件事情是确定的,不考虑相对论的话,对于地球上任何一点,我们都可以获得同样的时间戳

    时间和时区

    但是对于具体的时间来说,在同一时刻或者说不同时间戳下,地球上不同的人可能会有不同的答案,比如北京时间9月12日上午8点,对于格林威治地区的来说,这是9月12日0点,刚刚才告别9月11日。
    原因是为什么呢?因为有一个太阳以及地球的自转,大家都把太阳高度角最大的时刻叫做12点,所以每个地方的12点都是不一样的
    所以说:想要得到一个时间格式,我们不仅要知道当前的确切时间,而且要知道我们的位置。

    时间格式 = 真实时刻(时间戳)+所处位置(时区)

    在Python里,

    • 获得时间戳
      time.time()返回当前时间戳
    • 时间戳转时间格式
      time.localtime(时间戳)会返回对应时间戳的当地时间格式的元组,可以进一步格式化为其他时间格式的字符串。如果不填入时间戳的话,会默认是当前的时间戳。
      time.gmtime(时间戳)会返回对应时间戳的格林威治时间格式的元组,可以进一步格式化为其他时间格式的字符串。如果不填入时间戳的话,会默认是当前的时间戳。
    • 时间格式转时间戳
      注意!!!
      time.mktime(时间元组)默认时间元组为当地的时间元组!!!,如果你拥有一个GMT时间,需要将其转为当地时间再使用mktime!!!
      比如:time.mktime(time.localtime(0))会正常返回0,而time.mktime(time.gmtime(0))则会提示错误!因为以为time.gmtime返回的是1970-1-1 00:00:00,输入mktime的是当地北京时间,而北京时间1970-1-1 00:00:00在Unix时间戳里是不存在的,是负数。

    相关文章

      网友评论

          本文标题:时间戳、时间和时区

          本文链接:https://www.haomeiwen.com/subject/jlagyctx.html