導入 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'>