术语
epoch:时间开始点 ,即1970年1月1日00:00:00。
import time
print(time.gmtime(0)) # epoch,时间开始点,1970年1月1日00:00:00
# time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
seconds since the epoch:自纪元以来的秒数,自国际标准时间 1970年1月1日00:00:00 以来经过的总秒数,不包括闰秒。
import time
print(time.time()) # 1594792587.5603817
UTC:Universal Coordinated Time,协调世界时,世界标准时间,格林尼治标准时间,或GMT。
GMT:同上,世界标准时间。
初试
time.strftime(format, p_tuple=None)
:格式化时间,format见具体格式,p_tuple传入 time.struct_time
import time
print(time.localtime())
print(time.strftime("%Y-%m-%d %H:%M:%S"))
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
# time.struct_time(tm_year=2020, tm_mon=7, tm_mday=15, tm_hour=14, tm_min=18, tm_sec=50, tm_wday=2, tm_yday=197, tm_isdst=0)
# 2020-07-15 14:18:50
# 2020-07-15 14:18:50
时间表示转换
从 | 到 | 使用 |
---|---|---|
时间开始点 | 世界标准时间 | gmtime() |
时间开始点 | 本地时间 | localtime() |
世界标准时间 | 自纪元以来的秒数 | calendar.timegm() |
本地时间 | 自纪元以来的秒数 | mktime() |
import time
import calendar
print(time.gmtime())
print(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()))
# time.struct_time(tm_year=2020, tm_mon=7, tm_mday=15, tm_hour=6, tm_min=31, tm_sec=45, tm_wday=2, tm_yday=197, tm_isdst=0)
# 2020-07-15 06:31:45
print(time.localtime())
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
# time.struct_time(tm_year=2020, tm_mon=7, tm_mday=15, tm_hour=14, tm_min=31, tm_sec=45, tm_wday=2, tm_yday=197, tm_isdst=0)
# 2020-07-15 14:31:45
print(calendar.timegm(time.gmtime())) # 时间元组的时间戳
# 1594794705
print(time.mktime(time.localtime())) # localtime()的反函数
# 1594794705.0
print(time.time())
# 1594794705.428962
时间戳互转
时间戳 转 世界标准时间 和 本地时间
import time
timestamp = 1594440000
print(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(timestamp))) # 时间戳转世界标准时间
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp))) # 时间戳转本地时间
# 2020-07-11 04:00:00
# 2020-07-11 12:00:00
世界标准时间 和 本地时间 转 时间戳
import time
import calendar
print(calendar.timegm(time.gmtime())) # 世界标准时间转时间戳
print(calendar.timegm(time.localtime())) # 本地时间转时间戳
# 1594411200
# 1594440000
JavaScript获取时间戳
console.log((new Date).getTime())
对应Python时间戳
import time
import execjs
print(str(time.time()).replace('.', '')) # 1594800227044
print(execjs.eval("(new Date).getTime()")) # 1594800227096
封装一下
import time
def timestamp() -> str:
'''Python版本的时间戳,对应JavaScript的(new Date).getTime()'''
return str(time.time()).replace('.', '')
睡眠
sleep(secs)
import time
for i in range(10):
print(i)
time.sleep(1)
间隔每秒输出
解析时间字符串
time.strptime(string, format)
:解析时间字符串,format见具体格式,返回 time.struct_time
import time
print(time.strptime("2020-07-11 12:00:00", "%Y-%m-%d %H:%M:%S"))
# time.struct_time(tm_year=2020, tm_mon=7, tm_mday=11, tm_hour=12, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=193, tm_isdst=-1)