Python 標(biāo)準(zhǔn)庫之 datetime 模塊
Python 標(biāo)準(zhǔn)庫中的 datetime 模塊提供了和日期和時間相關(guān)的類:
類 | 功能 |
---|---|
datetime.date | 以年、月和日表示日歷中的日期 |
datetime.time | 以小時、分鐘和秒表示一天中的時間 |
datetime.datetime | 以年、月、日、小時、分鐘和秒表示日期和時間 |
datetime.timedelta | 表示一個時間段,即兩個日期時間之間的差 |
1. datetime.date 類
date 類以年、月和日表示日歷中的日期,示例如下:
>>> from datetime import date
>>> date.today()
datetime.date(2020, 5, 22)
>>> d = date(2020, 5, 1)
- 從 datetime 模塊中引入 date 類
- date.today() 返回表示今天的日期對象
- 構(gòu)造日期 2020 年 5 月 1 日
>>> d.year
2020
>>> d.month
5
>>> d.day
1
- d.year 返回日期對象的年份
- d.month 返回日期對象的月份
- d.day 返回日期對象的日
>>> d.weekday()
4
>>> d.isoweekday()
5
>>> d.isoformat()
'2020-05-01'
>>> d.isocalendar()
(2020, 18, 5)
- d.weekday() 返回一星期中的第幾天, 星期一是 0
- d.isoweekday() 返回一星期中的第幾天, 星期一是 1
- d.isoformat() 以格式 YYYY-MM-DD 返回日期的字符串形式
- d.isocalendar() 返回一個元組
- 第 0 項是年份
- 第 1 項是這一年的第幾周
- 第 2 項是周幾
>>> d.ctime()
'Fri May 1 00:00:00 2020'
>>> d.strftime("%Y-%m-%d")
'2020-05-01'
- d.ctime() 返回一個表示日期的字符串
- d.strftime() 返回指定格式的日期字符串
- %Y 表示年份
- %m 表示月份
- %d 表示日
>>> e = d.replace(year=2000, month=12)
>>> e
datetime.date(2000, 12, 1)
- d.replace() 替換年份、月份、日期生成一個新日期
- 將年份替換為 2000
- 將月份替換為 12
2. datetime.time 類
time 類以小時、分鐘和秒表示一天中的時間,示例如下:
>>> from datetime import time
>>> t = time(18, 19, 20, 21)
>>> t.hour
18
>>> t.minute
19
>>> t.second
20
>>> t.microsecond
21
- 從 datetime 模塊中引入 time 類
- 構(gòu)造時間 18 時 19 分 20 秒 21 微秒
- t.hour 返回小時
- t.minute 返回分鐘
- t.second 返回秒
- t.microsecond 返回微秒
>>> t.isoformat()
'18:19:20.000021'
>>> t.strftime("%H:%M:%S:%f")
'18:19:20:000021'
- t.isoformat() 返回 ISO 8601 格式的時間字符串
- t.strftime() 返回指定格式的時間格式
- %H 表示小時
- %M 表示分鐘
- %S 表示秒
- %f 表示微秒
>>> u = t.replace(hour=8, minute=8, second = 8)
>>> u
datetime.time(8, 8, 8, 21)
- t.replace() 替換小時、分鐘、秒生成一個新時間
- 將小時替換為 8
- 將分鐘替換為 8
- 將秒替換為 8
3. datetime.datetime 類
datetime 類年、月、日、小時、分鐘和秒表示日期和時間,包含 date 對象和 time 對象的所有信息,示例如下:
>>> from datetime import datetime,date,time
>>> datetime.today()
datetime.datetime(2020, 5, 22, 12, 27, 34, 896212)
- 從 datetime 模塊中引入類 datetime、類 date、類 time
- datetime.today() 返回表示今天的日期對象,包括年、月、日、小時、分鐘、秒和微秒
>>> d = date(2020,12,12)
>>> t = time(8,8,8,8)
>>> dt = datetime.combine(d, t)
>>> dt
datetime.datetime(2020, 12, 12, 8, 8, 8, 8)
- 構(gòu)造日期對象 d
- 構(gòu)造時間對象 t
- datetime.combine(d, t) 將日期對象 d 和時間對象 t 組合形成一個日期時間對象 dt
>>> dt.isoformat()
'2020-12-12T08:08:08.000008'
>>> dt.strftime("%Y-%m-%d %H:%M:%S:%f")
'2020-12-12 08:08:08:000008'
- t.isoformat() 返回 ISO 8601 格式的時間字符串
- t.strftime() 返回指定格式的時間格式
- %Y 表示年份
- %m 表示月份
- %d 表示日
- %H 表示小時
- %M 表示分鐘
- %S 表示秒
- %f 表示微秒
>>> u = dt.replace(year=2000, hour=20)
>>> u
datetime.datetime(2000, 12, 12, 20, 8, 8, 8)
>>> u.year
2000
>>> u.hour
20
- dt.replace() 替換年、月、日、小時、分鐘、秒生成一個新時間
- 將年份替換為 2000
- 將小時替換為 20
4. datetime.timedelta 類
timedelta 對象表示一個時間段,即兩個日期 (date) 或日期時間 (datetime) 之間的差。timedelta 接受命名參數(shù):weeks、days、hours、minutes、seconds、milliseconds、microseconds,示例如下:
>>> from datetime import date,timedelta
>>> d = date(2020,12,12)
>>> delta = timedelta(days=3)
>>> d - delta
datetime.date(2020, 12, 9)
- 從 datetime 模塊中導(dǎo)入相關(guān)的類
- 創(chuàng)建日期對象 2020 年 12 月 12 日
- 創(chuàng)建長度為 3 天的時間段
- 日期 d 前三天的日期是 2020 年 12 月 9 日
>>> dt = datetime(2020, 12, 12, 8, 8, 8, 8)
>>> delta = timedelta(days = 3, hours = 3)
>>> dt - delta
datetime.datetime(2020, 12, 9, 5, 8, 8, 8)
- 從 datetime 模塊中導(dǎo)入相關(guān)的類
- 創(chuàng)建日期對象 2020 年 12 月 12 日 8 時 8 分 8 秒 8 微秒
- 創(chuàng)建長度為 3 天 3 小時的時間段
- 日期 d 前 3 天 3 小時的日期是 2020 年 12 月 9 日 5 時 8 分 8 秒 8 微秒