117-关于python的时间

本文深入探讨了时间戳的概念,以及如何使用Python中的gmtime(), localtime(), timegm(), 和 mktime()函数进行时间戳与UTC时间及本地时间的相互转换。通过具体示例,展示了不同时间转换函数的应用场景。
摘要由CSDN通过智能技术生成
FromToUse
seconds since the epochstruct_time in UTCgmtime()
seconds since the epochstruct_time in local timelocaltime()
struct_time in UTCseconds since the epochcalendar.timegm()
struct_time in local timeseconds since the epochmktime()

表格来自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表格的网站

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值