Python - 日期、時間和日曆操作

總結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)

先總結這些,持續更新…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章