time
import time
t1 = time.time() # 时间戳,表示从1970年起,到现在过了多少秒
print(t1) # 1667547609.1760724
t2 = time.timezone # 是当地时区(未启动夏令时)距离格林威治的偏移秒数(>0为美洲,<=0大部分欧洲,亚洲,非洲)
print(t2)
print(t2/60/60) # 东8区
print('start...')
time.sleep(3) # 暂停线程运行3秒
print('end')
datetime
from datetime import datetime, timezone, timedelta
t1 = datetime.now() # 当前本地时间
print(type(t1)) # datetime类型
需要注意的是datetime.now()
返回的结果并不是一个时间字符串,而是一个datetime
类型的数据,转化为字符串就表示当前时间。
获取某个时区的时间
tz = timezone(timedelta(hours=7)) # 设置时区为东7区
t3 = datetime.now(tz)
print(t3) # 2022-11-04 15:10:37.870024+07:00
时间加减
tz = timezone(timedelta(hours=7)) # 东7区
t3 = datetime.now(tz)
print(t3) # 2022-11-04 15:14:39.455877+07:00
# 相加运算
t4 = t3 + timedelta(days=10, minutes=5)
print(t4) # 2022-11-14 15:19:39.455877+07:00
# 相减运算
t1 = datetime.now()
t2 = datetime.utcnow()
t3 = t1 - t2
print(t3.days, t3.seconds / 60 / 60, t3.microseconds) # t3.days表示相差多少天, t3.seconds表示相差多少秒
将字符串转为datetime
t1_str = '2022-11-4'
t1 = datetime.strptime(t1_str, '%Y-%m-%d')
print(t1) # 2022-11-04 00:00:00
将datetime转为字符串
t1 = datetime.now()
t1_str = t1.strftime('%Y-%m-%d %H:%M:%S')
print(t1_str) # 2022-11-04 16:31:00
将时间戳转为datetime
t1 = time.time()
t2 = datetime.fromtimestamp(t1)
print(t2) # 2022-11-04 16:35:03.587376
将datetime转为时间戳
t1 = datetime.now() # 2022-11-07 16:54:15.869589
t2 = t1.timestamp()
print(t2) # 1667811255.869589