總結Python的日期、時間和日曆的獲取、比較等,主要是導入time、datetime、calendar這三個包
日期格式的轉換
import datetime
time_format = '%Y-%m-%d %H:%M:%S'
now = datetime.datetime.now()
print now
print type(now)
# 將日期轉化爲字符串 datetime -> string
print now.strftime(time_format)
print '------------------'
# 將字符串轉換爲日期 string -> datetime
t_str = '2020-02-19 17:12:00'
d = datetime.datetime.strptime(t_str, time_format) # 注意這裏是 strptime,不是strftime
print d
print type(d)
運行結果:
2020-02-29 11:11:39.032802
<type 'datetime.datetime'>
2020-02-29 11:11:39
------------------
2020-02-19 17:12:00
<type 'datetime.datetime'>
日期的加減操作
在datetime模塊中有timedelta類,這個類的對象用於表示一個時間間隔。timedelta類的實例支持加、減、乘、除等操作。
import datetime
# 計算兩個日期的間隔
time_format = '%Y-%m-%d %H:%M:%S'
d1 = datetime.datetime.strptime('2020-02-22 17:14:44', time_format)
d2 = datetime.datetime.strptime('2020-02-19 17:10:41', time_format)
delta = d1 - d2
print delta.days
print delta.seconds
print delta
print '------------------'+'\n'
# 當前時間
now = datetime.datetime.now()
print ('Current time is: ' + now.strftime(time_format))
# 今天的3天后的日期
delta2 = datetime.timedelta(days=3)
three_days_later = now + delta2
print ('Three days later: ' + three_days_later.strftime(time_format))
print '------------------'+'\n'
# 現在過後5分鐘的時間
delta3 = datetime.timedelta(minutes=5)
after_5minutes = now + delta3
print type(after_5minutes)
print ('Five minutes later: ' + after_5minutes.strftime(time_format))
運行結果:
3
243
3 days, 0:04:03
------------------
Current time is: 2020-02-29 11:05:48
Three days later: 2020-03-03 11:05:48
------------------
<type 'datetime.datetime'>
Five minutes later: 2020-02-29 11:10:48
time 和 datetime的區別
time和datetime獲取的當前時間,一個是str格式,一個是datetime格式
import datetime
import time
time_format = '%Y-%m-%d %H:%M:%S'
now = datetime.datetime.now()
# time 和 datetime的區別
now_time = time.strftime(time_format)
now_datetime = datetime.datetime.now()
print ('now_time: ' , now_time)
print ('now_time type is: ', type(now_time))
print ('now_datetime: ', now_datetime)
print ('now_datetime type is: ', type(now_datetime))
運行結果:
('now_time: ', '2020-02-29 11:20:11')
('now_time type is: ', <type 'str'>)
('now_datetime: ', datetime.datetime(2020, 2, 29, 11, 20, 11, 346197))
('now_datetime type is: ', <type 'datetime.datetime'>)
英文的月份轉數字及數字轉英文
import datetime
import calendar
# 數字月份轉英文簡寫
print "英文3月簡寫:" + calendar.month_abbr[3]
# 英文月份簡寫轉數字月份
expiration_time = 'Mar-22-2020'
month = expiration_time.split('-')[0]
expiration_month = list(calendar.month_abbr).index(month)
print expiration_month
print type(expiration_month)
print '-------'+'\n'
# 數字轉月份的全寫
print calendar.month_name[11]
# 月份轉數字
print list(calendar.month_name).index('December')
運行結果:
英文3月簡寫:Mar
3
<type 'int'>
-------
November
12
獲取當前年份,日,月,小時,分鐘,秒
import datetime
# 獲取當前月份
current_month = datetime.datetime.now().month
print ('current month is: %d', current_month)
print type(current_month)
# 獲取今天是幾號
print ('current day is: %d', datetime.datetime.now().day)
print ('current year is: %d', datetime.datetime.now().year)
print '\n'
print ('current hour is: %d', datetime.datetime.now().hour)
print ('current minute is: %d', datetime.datetime.now().minute)
print ('current second is: %d', datetime.datetime.now().second)
運行結果:
('current month is: %d', 2)
<type 'int'>
('current day is: %d', 29)
('current year is: %d', 2020)
('current hour is: %d', 11)
('current minute is: %d', 56)
('current second is: %d', 45)
先總結這些,持續更新…