Python 時間操作datetime詳情(下)
復習回顧:datetime模塊
1. datetime.date 類
datetime.date
類定義的 date 對象代表日期(年月日如2021.10.30)
1.1datetime.date 類格式
class datetime.date(year,month,day)
參數:不可缺省。如果參數不存在,則會拋出ValueError異常
- year參數取值范圍:[MINYEAR, MAXYEAR]
- month參數取值范圍:[1,12]
- day參數取值范圍:[1,給定年月對應的天數]
1.2datetime.date類方法和屬性
類方法/屬性 | 作用 |
---|---|
date.max | date對象表示的最大日期,9999-12-31 |
date.min | date對象表示的最小日期,0001-01-01 |
date.resolution | date對象表示日期的最大單位,天 |
date.today() | 獲取當前本地日期 |
date.fromtimestamp(timestamp) | 將時間戳轉換成日期 |
date對象方法和屬性
對象方法/屬性 | 作用 |
---|---|
d.year | 表示年 |
d.month | 表示月 |
d.day | 表示日 |
d.replace(year,[,month,[,day]]) | 生成一個新的日期 |
d.timetuple() | 返回日期對應的結構化對象 |
d.toordinal() | 返回日期距離起始0001-01-01的第N天 |
d.weekday() | 返回日期是星期幾,[0,6] 0代表是星期一 |
d.isoweekday | 返回日期是星期幾,[1,7] 1代表是星期一 |
d.isocalendar() | (year, weekday, isoweekday)形式的元組 |
d.isoformat() | ‘YYYY-MM-DD’格式的日期字符串 |
d.strftime(format) | 返回指定格式的日期字符串 |
import datetime dat = datetime.date(2021,10,30) print("datetime.date.today()類方法",datetime.date.today()) print("date對象year屬性:",dat.year) print("date對象month屬性:",dat.month) print("date對象day屬性:",dat.day) print("date對象replace:",dat.replace(2022)) print("date對象timetuple:",dat.timetuple()) print("date對象weekday:",dat.weekday()) print("date對象isoweekday:",dat.isoweekday()) print("date對象isocalendar:",dat.isocalendar()) print("date對象isoformat:",dat.isoformat()) print("date對象strftime:",dat.strftime("%d-%m-%Y"))
2. datetime.time 類
datetime.time
類的對象表示某地某日的時間,獨立於任何特定日期,並且可以通過tzinfo
對象來調整。
2.1datetime.time 類格式
class datetime.time(hour=0,minute=0, second=0,mircrosecond=0,tzinfo=Noe,*,fold=0 )
參數:所有的參數都是可選的
- hour參數取值范圍:[0,23]
- minute參數取值范圍:[0,59]
- second參數取值范圍:[0,59]
- microsecond取值范圍:[0,1000000]
- tzinfo:可以是None,或者一個tzinfo子類實例
2.2datetime.time類方法和屬性
類方法/屬性 | 作用 |
---|---|
time.max | time類表示最大時間,time(23, 59, 59, 999999) |
time.min | time類表示最小時間,time(0, 0, 0, 0) |
time.resolution | 時間的最小單位,1微秒 |
2.3datetime.time類方法和屬性
實例方法/屬性 | 作用 |
---|---|
t.hour | 表示時 |
t.minute | 表示分 |
t.second | 表示秒 |
t.microsecond | 表示微秒 |
t.tzinfo | 返回傳遞time構造方法的tzinfo對象 |
t.replace(hour,[,mintue,[,]]) | 生成一個新的時間 |
t.isoformat() | 返回一個‘HH:MM:SS.%f’格式的時間字符串 |
t.strftime() | 返回指定格式的時間字符串 |
3. datetime.datetime 類
datetime.datetime 類是datetime.date的子類,包含時間和日期所有信息的對象
3.1datetime.datetime 類定義格式
class datetime.datetime(year,month,day,hour=0,minute=0, second=0,mircrosecond=0,tzinfo=Noe,*,fold=0 )
參數:year,month和day 參數是必填項
- year參數取值范圍:[MINYEAR, MAXYEAR]
- month參數取值范圍:[1,12]
- day參數取值范圍:[1,給定年月對應的天數]
- hour參數取值范圍:[0,23]
- minute參數取值范圍:[0,59]
- second參數取值范圍:[0,59]
- microsecond取值范圍:[0,1000000]
- tzinfo:可以是None,或者一個tzinfo子類實例
- fold in [0,1]
3.2datetime.datetime 類方法和屬性
類方法/屬性 | 作用 |
---|---|
datetime.today() | f返回當前本期日期時間的datetime對象 |
datetime.now([tz]) | 返回指定時區日期時間的datetime對象,若不指定tz參數則系統時間 |
datetime.utcnow() | 返回當前utc日期時間的datetime對象 |
datetime.fromtimestamp(timestamp[, tz]) | 根據指定的時間戳創建一個datetime對象 |
datetime.utcfromtimestamp(timestamp) | 根據指定的時間戳創建一個datetime對象 |
datetime.combine(date, time) | 把指定的date和time對象整合成一個datetime對象 |
datetime.strptime(date_str, format) | 將時間字符串轉換為datetime對象 |
datetime.datetime 類實例方法和屬性
實例方法/屬性 | 作用 |
---|---|
dt.year | 表示年 |
dt.month | 表示月 |
dt.day | 表示日 |
dt.hour | 表示時 |
dt.minute | 表示分 |
dt.second | 表示秒 |
dt.microsecond | 表示微秒 |
dt.tzinfo | 表示時區 |
dt.date() | 獲取datetime對象對應的date對象 |
dt.time() | 獲取datetime對象對應的time對象, tzinfo 為None |
dt.timetz() | 獲取datetime對象對應的time對象,tzinfo與datetime對象的tzinfo相同 |
dt.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]]) | 生成一個新datetime對象 |
dt.timetuple() | 返回datetime對象對應的tuple(不包括tzinfo) |
dt.utctimetuple() | 返回datetime對象對應的utc時間的tuple(不包括tzinfo) |
dt.timestamp() | 返回datetime對象對應的時間戳 |
dt.toordinal() | 返回日期是是自 0001-01-01 開始的第多少天 |
dt.weekday() | 返回日期是星期幾,[0, 6],0表示星期一 |
dt.isocalendar() | 返回一個元組,格式為:(year, weekday, isoweekday) |
dt.isoformat([sep]) | 返回一個‘%Y-%m-%d%H:%M:%S.%f’格式的字符串 |
dt.ctime() | 等價於time模塊的time.ctime(time.mktime(d.timetuple())) |
dt.strftime(format) | 返回指定格式的時間字符串 |
4. datetime.timedelta 類
datetime.timedelta 類定義的對象表示兩個date或者time的時間間隔
4.1datetime.timedelta 類定義格式
class datetime.timedelta(days=0,seconds=0,microseconds=0, milliseconds=0,hours=0,weeks=0 )
參數:所有參數都是可選並且默認為0
- 參數類型:整數或者浮點數,正數或者負數
- 隻有days、seconds、microseconds會存儲在內部
換算公式:
- 1seconds = 1000microsends
- 1minutes = 60seconds
- 1hours = 3600seconds
- 1weeks = 7days
seconds 取值范圍:[0,86399]
microseconds 取值范圍:[0,999999]
days 取值范圍:[-999999999,999999999]
4.2datetime.timedelta 類方法和屬性
類方法/屬性 | 作用 |
---|---|
timedelta.min | timedelta(-999999999) |
timedelta.max | timedelta(days=999999999, hours=23, minutes=59, seconds=59, microseconds=999999) |
timedelta.resolution | timedelta(microseconds=1) |
datetime.timedelta 類實例方法和屬性
實例方法/屬性 | 作用 |
---|---|
td.days | 天,[-999999999, 999999999] |
td.seconds | 秒[0, 86399] |
td.microseconds | 微秒 [0, 999999] |
td.total_seconds() | 時間差中包含的總秒數,等價於: td / timedelta(seconds=1) |
5. datetime.tzinfo 類與datetime.timezone 類
datetime.tzinfo 類是一個抽象基類,該類不會被直接實例化。
tzinfo
的子類用例捕獲有關特定時區的信息tzinfo
的實例可以傳給datetime
和time對象的構造器中
datetime.timezone
類是tzinfo的子類,它的每一個實例代表一個以與UTC的固定時間差來定義的時區。
5.1datetime.timezone 類定義格式
class datetime.timezone(offset,name=None)
參數:
- offset 必現要指定一個timedelta對象,表示本地時間與UTC時間差范圍在[-24,24]
- name:是可選的,若指定必須為一個字符串,它將被用作於datetime.tzname()方法返回值
5.2datetime.timezone 類方法和屬性
類方法/屬性 | 作用 |
---|---|
timezone.utcoffset(dt) | 返回當 timezone 實例被構造時指定的固定值。 |
timezone.tzname(dt) | 返回timezone實例被構造時指定的固定值 |
timezone.dst(dt) | 總是返回none |
timezone.formutc(dt) | 返回dt+uoffset |
timezone.utc | 返回UTC時區 |
6、總結
主要對datetime模塊中六大類相關的屬性和方法進行學習匯總
到此這篇關於 Python 時間操作datetime詳情(下)的文章就介紹到這瞭,更多相關 Python 時間操作datetime內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!