Python中关于时间处理的模块有两个,分别是time和datetime。
-
UTC/GMT:世界时间
-
本地时间:本地时区的时间。
-
datetime模块
- 当前时间、时区转换
from datetime import datetime, timezone, timedelta
v1 = datetime.now() # 当前本地时间(东八区)
print(v1)
tz = timezone(timedelta(hours=7)) # 当前东7区时间 (设置其他时区)
v2 = datetime.now(tz)
print(v2)
v3 = datetime.utcnow() # 当前UTC时间
print(v3)
- 时间间隔
#----datetime类型 + timedelta类型(时间间隔)----
from datetime import datetime, timedelta
v1 = datetime.now()
print(v1)
# 时间的加减
v2 = v1 + timedelta(days=140, minutes=5)
print(v2)
- 时间相减
#----datetime类型 - datetime类型----
from datetime import datetime, timezone, timedelta
v1 = datetime.now()
print(v1)
v2 = datetime.utcnow() # 当前UTC时间
print(v2)
# datetime之间相减,计算间隔时间(不能相加)
data = v1 - v2
print(data.days, data.seconds / 60 / 60, data.microseconds)
# 输出:0 8.0 999003
- 字符串格式与datetime格式互转
datetime.strptime() :字符串 --> datetime格式
datetime.strftime() : datetime格式 --> 字符串
#------对比strptime与strftime-----
from datetime import datetime
# 字符串格式的时间 ---> 转换为datetime格式时间
text = '2022-5-1'
v1 = datetime.strptime(text,'%Y-%m-%d') #字符串转datetime格式
print(v1,type(v1))
# datetime格式 ----> 转换为字符串格式
v2 = datetime.now()
val = v2.strftime('%Y-%m-%d %H:%M:%S') #datetime格式转字符串
print(val,type(val))
- 时间戳与datetime格式互转
# 时间戳格式 --> 转换为datetime格式
ctime = time.time() # 1651372496.3807452
v1 = datetime.fromtimestamp(ctime)
print(v1)
# datetime格式 ---> 转换为时间戳格式
v2 = datetime.now()
v2 = v2.timestamp()
print(v2)