117-关于python的时间

From To Use
seconds since the epoch struct_time in UTC gmtime()
seconds since the epoch struct_time in local time localtime()
struct_time in UTC seconds since the epoch calendar.timegm()
struct_time in local time seconds since the epoch mktime()

表格来自time — Time access and conversions,注意时间戳也就是秒是不分时区的。


假设现在有时间戳0秒,当将该时间分别转为UTC时间或本地时间时,转换如下:

from time import gmtime, localtime, strftime

sec = 0
# 获取时间元组
utctime = gmtime(sec)
localtime = localtime(sec)

print('若转为UTC时间:',
      strftime('%Y/%m/%d %H:%M:%S', utctime))
print('若转为当地时间:',
      strftime('%Y/%m/%d %H:%M:%S', localtime))

输出:

若转为UTC时间: 1970/01/01 00:00:00
若转为当地时间: 1970/01/01 08:00:00

显而易见,gmtime会将时间戳转为UTC时间,localtime()会将时间戳转为当地时间。


假设现在有时间’1970/01/01 08:00:00’,当该时间分别为UTC时间或本地时间时,转换如下:

from calendar import timegm
from time import strptime, mktime

strtime = '1970/01/01 08:00:00'
tuptime = strptime(strtime, '%Y/%m/%d %H:%M:%S')
print('若给出的是UTC时间:', timegm(tuptime))
print('若给出的是当地时间:', mktime(tuptime))

输出:

若给出的是UTC时间: 28800
若给出的是当地时间: 0.0

显而易见,timegm认为你给出的是UTC,mktime认为你给出的是当地时间。


补充:GMT->gm
表格中的时间结构体,就是我们通常所说的时间元组
程序中为了看起来方便,对时间元组做了相应的转化
附加一个自动生成markdown表格的网站

你可能感兴趣的:(Python,python,time,utc,本地时间)