导入 datetime 库
获取当前时间
# 获取当前时间 day1 = datetime.datetime.now() # 获取当前日期 day2 = datetime.date.today() # 获取时间秒的方法,截取时候需要注意当前时间类型str/datetime.datetime day3 = datetime.datetime.strftime(day1, '%Y-%m-%d %H:%M:%S').split(' ')[1] day4 = datetime.datetime.time(day1) print('now', day1) print('today', day2) print('day3', day3) print('day4', day4) 结果输出: now 2021-10-30 14:03:16.802193 today 2021-10-30 day3 14:03:16 day4 14:03:16.802193
一、字符串转时间(strptime),时间转字符串(strftime)
1)字符串转时间(strptime)
1 date = "2021-04-01 00:00:00" 2 3 dates = datetime.datetime.strptime(date, '%Y-%m-%d %H:%M:%S')
输出结果:
2021-04-01 00:00:00 <class 'datetime.datetime'>
2)时间转字符串(strftime)
times = datetime.datetime.strftime(dates, '%Y-%m-%d %H:%M:%S') print(times,type(times))
输出结果:
2021-04-01 00:00:00 <class 'str'>
二、时间转时间戳
1 import datetime 2 3 # 方法一:字符串转时间戳 4 date = "2021-04-01 00:00:00" 5 datetime_stamp = datetime.datetime.timestamp(datetime.datetime.strptime(date, '%Y-%m-%d %H:%M:%S')) 6 print('timestamp1',datetime_stamp, int(datetime_stamp * 1000)) 7 8 # 方法二:datetime类型转时间戳 9 day1 = datetime.datetime.now() 10 datetime_stamp = datetime.datetime.timestamp(day1) 11 print('timestamp2',datetime_stamp, int(datetime_stamp * 1000)) 12 13 14 结果输出: 15 timestamp1 1617206400.0 1617206400000 16 timestamp2 1635575050.520314 1635575050520
三、时间戳转时间
注意:必须10位时间戳才能进行转换
import datetime strT = 1635575731642/1000 datetime_str2 = datetime.datetime.strftime(datetime.datetime.fromtimestamp(strT), '%Y-%m-%d %H:%M:%S') print('datetime_str2', datetime_str2,type(datetime_str2)) datetime_str3 = datetime.datetime.fromtimestamp(strT) print('datetime_str3',datetime_str3,type(datetime_str3)) 输出结果: datetime_str2 2021-10-30 14:35:31 <class 'str'> datetime_str3 2021-10-30 14:35:31.642000 <class 'datetime.datetime'>
四、时间对比
注意:必须相同类型才能进行比较
1)字符串相互比较
date = "2021-04-01 01:00:00" if date > "2021-04-01 00:00:00": print('True1',date.split(' ')[1],type(date.split(' ')[1])) if date.split(' ')[1] > "00:00:00": print('True2',date.split(' ')[1],type(date.split(' ')[1])) 输出结果: True1 01:00:00 <class 'str'> True2 01:00:00 <class 'str'>
.
2)当类型不一致时,编译器会进行警示和执行后报错
类型输出:当前 2021-10-30 15:01:50.133857 <class 'datetime.datetime'> <class 'str'>
date = "2021-04-01 01:00:00" nowTimes = datetime.datetime.now() #15:10:10.993629 print('时间编译',type(datetime.datetime.time(nowTimes)),datetime.datetime.time(nowTimes),'|',datetime.datetime.time(datetime.datetime.strptime(date.split(' ')[1],'%H:%M:%S')),type(date)) 结果输出: 时间编译 <class 'datetime.time'> 15:07:00.502935 | 01:00:00 <class 'str'> if datetime.datetime.time(nowTimes) > datetime.datetime.time(datetime.datetime.strptime(date.split(' ')[1],'%H:%M:%S')): print('True',datetime.datetime.time(nowTimes) ,'|', datetime.datetime.time(datetime.datetime.strptime(date.split(' ')[1],'%H:%M:%S'))) else: print('False',datetime.datetime.time(nowTimes) ,'|', datetime.datetime.time(datetime.datetime.strptime(date.split(' ')[1],'%H:%M:%S'))) 结果输出: True 15:10:10.993629 | 01:00:00 当 date = "2021-04-01 17:00:00" 结果输出: False 15:13:11.753158 | 17:00:00
五、时间常用加减
注意:只有datetime类型才可以进行时间的加减
(datetime.timedelta可使用类型:weeks,days,hours,minutes,seconds...)
1 nowTimes = datetime.datetime.now() 2 print('当前时间',nowTimes,type(nowTimes)) 3 timeCompute= nowTimes + datetime.timedelta(days=1) 4 print('计算后',timeCompute) 5 6 输出结果: 7 当前时间 2021-10-30 15:19:25.043502 <class 'datetime.datetime'> 8 计算后 2021-10-31 15:19:25.043502
当类型不一致时,编译器会进行警示和执行后报错
输出结果:
当前时间 2021-04-01 17:00:00 <class 'str'> 1 day, 0:00:00 <class 'datetime.timedelta'>