python常用時間轉換(datetime 庫)


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

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM