时间模块¶
时间戳 timestamp¶
时间戳本事没有时区的概念,同一时间戳可以被转换为不同时区的格式化或者结构化时间
import time
# 获取当前时间戳
stp = time.time()
"""
<class 'float'>
1609670371.4864702
"""
stp_int = int(stp) # 不带毫秒
获取时区 time_zone¶
UTC(Coordinated Universal Time)时区 CST(China Standard Time)时区,UTC+8
from datetime import datetime, timezone, timedelta
utc_tz = timezone.utc
cst_tz = timezone(timedelta(hours=8))
import pyzt
utc_tz = pytz.timezone('UTC') # <UTC>
cst_tz = pytz.timezone("Asia/Shanghai") # <DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>
时间戳转CST¶
from datetime import datetime
fmt = "%Y-%m-%d %H:%M:%S"
cst_struct = datetime.fromtimestamp(stp_int, cst_tz) # 先转为结构化时间
cst = cst_struct.strftime(fmt)
import pyzt
fmt = "%Y-%m-%d %H:%M:%S"
cst_struct = datetime.fromtimestamp(stp_int, cst_tz) # 先转为结构化时间
cst = cst_struct.strftime(fmt)
CST转时间戳¶
import time
fmt = "%Y-%m-%d %H:%M:%S"
cst_struct = time.strptime(cst, fmt) # 先转为结构化时间
stp = time.mktime(cst_struct)
stp_int = int(stp)
其它(待整理)¶
# 时间戳转本地时区结构化时间
x = time.localtime()
time.mktime(x) # 逆操作
# 时间戳转UTC时区结构化时间
x = time.gmtime()
calendar.timegm(x) # 逆操作
"""
<class 'time.struct_time'>
time.struct_time(tm_year=2021, tm_mon=1, tm_mday=3, tm_hour=19, tm_min=17, tm_sec=8, tm_wday=6, tm_yday=3, tm_isdst=0)
x[0] # 2021
x.tm_wday # 6 表示周日
x.tm_yday # 一年中的第几天
x.tm_isdst # 是否夏令时
"""
# 结构化转ctime格式
time.asctime(x)
# 时间戳转ctime格式
x = time.ctime() # <class 'str'> 'Sun Jan 3 20:25:19 2021'
# 结构化时间转格式化时间
x = time.strftime("%Y-%m-%d %H:%M:%S") # <class 'str'> '2021-01-03 19:18:55'
x.strptime(strftime) # strftime格式化转结构化时间
- datetime
# 服务器所在时区的当前时间
datetime.datetime.now() # <class 'datetime.datetime'>
# 标准UTC当前时间
datetime.datetime.utcnow() # <class 'datetime.datetime'>
最后更新:
2023-08-06