您好,登錄后才能下訂單哦!
本篇內容介紹了“Python的datetime模塊有哪些類型”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
datetime 模塊提供了可以通過多種方式操作日期和時間的類。在支持日期時間數學運算的同時,實現的關注點更著重于如何能夠更有效地解析其屬性用于格式化輸出和數據操作。
datetime 模塊中提供了六種可用類型,分別是:
1、類 datetime.date:表示一個理想日期,屬性有 year、month、day;
2、類 datetime.time:表示一個理想時間,屬性有 hour、minute、second、microsecond 和 tzinfo;
3、類 datetime.datetime:表示日期和時間的組合,屬性有 year、month、day、hour、minute、second、microsecond 和 tzinfo;
4、類 datetime.timedelta:表示兩個 date 對象或者 time 對象,或者 datetime 對象之間的時間間隔,精確到微秒。屬性有 days、seconds、microsecond;
5、類 datetime.tzinfo:表示時區信息對象的抽象基類,用于給 datetime 類和 time 類提供自定義的時間調整概念(例如,負責時區或者夏令時)。
6、類 datetime.timezone:一個實現了 tzinfo 抽象基類的子類,用于表示相對于 世界標準時間(UTC)的偏移量。
在以上六種可用類型中,datetime 為 date 的子類,timezone 為 tzinfo 的子類。另外除了以上六種類型,datetime 模塊還提供了兩個常量,datetime.MINYEAR:表示 date 或 datetime 對象中允許的最小年份,其值為 1;datetime.MAXYEAR:表示 date 或 datetime 對象中允許的最大年份, 其值為 9999。
下面將詳細介紹前四種可用類型
datetime.date
date 是一種具體日期類型,它的實例對象支持大于、小于、大于等于、小于等于、等于運算,得到 bool 值;支持加上一個 timedelta 對象的加法運算,得到 date 對象;支持減去一個 date 或 timedelta 對象的減法運算,得到 timedelta 或 datetime 對像。
另外,date 對象可以作為字典的鍵,在布爾上下文中,所有 date 對象都被認為是 True。
詳細介紹如下:
構造函數: datetime.date(year, month, day)
參數:
第一個參數表示年,取值范圍為 MINYEAR <= year <= MAXYEAR; MINYEAR=1, MAXYEAR=9999
第二個參數表示月,取值范圍為 1 <= month <= 12
第三個參數表示日,取值范圍為 1 <= day <= 給定年份該月份的最大天數
類屬性
min:可表示的最早期日,即 date(MINYEAR, 1, 1)
max: 可表示的最大日期,即 date(MAXYEAR, 12, 31)
resolution:非相等日期之間的最小可能差異,即 timedelta(days=1)
類方法(常用構造方法)
fromtimestamp(cls, t)
功能:返回與 POSIX 時間戳對應的本地日期
參數:cls 表示 date 類,t 表示時間戳
返回值:一個 date 對象
today(cls)
功能:獲取當前時刻的日期
參數:cls 表示 date 類,自動傳入
返回值:一個 date 對象
fromisoformat(cls, date_string)
功能:從提供的 date_string 中構造一個日期
參數:cls 表示 date 類;date_string 表示日期字符串,其格式為 YYYY-MM-DD
返回值:一個 date 對象
實例屬性(只讀,其實是靜態屬性)
year:返回年
month:返回月
day:返回日
實例方法(常用)
ctime(self)
功能:返回 ctime() 風格的日期字符串
參數:self 表示對象本身
返回值:一個字符串
strftime(self, format)
功能:按照指定的格式返回日期
參數:self 表示對象本身,format 表示格式字符串
返回值:一個字符串
isoformat(self)
功能:返回根據 ISO 格式化的日期。格式為:YYYY-MM-DD
參數:self 表示對象本身
返回值:一個字符串
replace(year=self.year, month=self.month,day=self.day)
功能:為指定字段返回具有新值的新日期
參數:分別是年,月,日,不提供則默認為 self 對應的值
返回值:一個新的 date 對象
timetuple(self)
功能:返回與 time.localtime() 兼容的本地時間元組
參數:self 表示對象本身
返回值:時間元組
weekday(self)
功能:以整數形式返回星期幾,其中星期一為 0,星期日為 6
參數:self 表示對象本身
返回值:一個整數
isoweekday(self)
功能:以整數形式返回星期幾,其中星期一為 1,星期日為 7
參數:self 表示對象本身
返回值:一個整數
isocalendar(self)
功能:返回I年、第幾周、周幾
參數:self 表述對象本身
返回值:返回一個包含ISO年,周號和工作日的三元組。
datetime.datetime
datetime 模塊下的 datetime 是 date 類的一個子類,它的實例對象支持大于、小于、大于等于、小于等于運算,得到 bool 值;支持加上一個 timedelta 對象的加法運算,得到 datetime 對象;支持減去一個 datetime 或 timedelta 對象的減法運算,得到 timedelta 或 datetime 對像。
datetime 對象還可以作為字典的鍵值,并且,在 bool 上下文中,datetime 對象都被認為是 True。
詳細介紹如下:
構造函數:datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
其中,year、month 和 day 是必須要傳入的參數,hour、minute、second、microsecond、fold 默認為 0, tzinfo 默認為 None,也可以傳入 tzinfo 子類的實例( tzinfo 是一個抽象類)
注意:除 tzinfo 外,其他參數都要是整數
參數:
第一個參數表示年,取值范圍為 MINYEAR <= year <= MAXYEAR; MINYEAR=1, MAXYEAR=9999
第二個參數表示月,取值范圍為 1 <= month <= 12
第三個參數表示日,取值范圍為 1 <= day <= 給定年份該月份的最大天數
第四個參數表示時,取值范圍為 0 <= hour <= 23
第五個參數表示分,取值范圍為 0 <= minute <= 59
第六個參數表示秒,取值范圍為 0 <= second <= 59
第七個參數表示微秒,取值范圍為 0 <= microsecond < 1000000
第八個參數表示時區信息對象,默認 tzinfo=None,一般用不到
fold 參數是3.6版本新加入的,取值范圍為[0, 1]。該參數需要以關鍵字的形式傳入
fold 參數的詳解請參考:docs.python.org/3/library/datetime.html#datetime-objects
類屬性:
min:表示最早的 datetime 對象, 同于 datetime(MINYEAR, 1, 1, tzinfo=None)
max:表示最晚的 datetime 對象, 同于 datetime(MAXYEAR, 12, 31, 23, 59, 59, 999999, tzinfo=None)
resolution:表示兩個非相等 datetime 對象之間可能的最小差
類方法(常用構造方法):
fromtimestamp(cls, t, tz=None)
功能:根據時間戳構造一個 datetime 對象
參數:cls表示 datetime 類(自動傳入),t 表示時間戳, tz表示時區信息對象,默認為 None
返回值:一個 datetime 的實例對象
utcfromtimestamp(cls, t)
功能:創建一個 UTC 時間 的 datetime 對象
參數:cls 表示 datetime 類, t 表示時間戳
返回值:一個 datetime 對象
now(cls, tz = None)
功能:獲取當前的時間,格式為:2019-09-29 15:40:01.972076
參數:cls表示 datetime 類(自動傳入),tz表示時區信息對象,默認為 None
返回值:基于當前時刻的時間戳創建的 datetime 對象
說明:其實就是 t = time.time(); return cls.fromtimestamp(t, tz)
utcnow(cls)
功能:獲取當前的 UTC 時間, 格式為:2019-10-08 00:03:34.749434
參數:cls表示 datetime 類(自動傳入)
返回值:一個 datetime 對象
說明:其實就是 t = time.time(); return cls.utcfromtimestamp(t)
combine(cls, date, time, tzinfo=True)
功能:根據給定的日期和時間創建一個 datetime 對象。如果提供了tzinfo 參數,則使用其值設置返回對象的 tzinfo 屬性,否則使用time參數的tzinfo屬性
參數:cls 表示 datetime 類,date 表示日期對象,time 表示時間對象
返回值:一個datetime 對象
fromisoformat(cls, date_string)
功能:根據 date_string 給定的格式創建一個 datetime 對象
參數:cls 表示 datetime 類,date_string 表示一個時間日期字符串,其格式為:YYYY-MM-DD[*HH[:MM[:SS[.fff[fff]]]][+HH:MM[:SS[.ffffff]]]]
返回值:一個 datetime 對象
說明:若字符串中沒有包含時分秒,則其值默認為零
strptime(cls, date_string, format)
功能:按照給定的格式解析表示時間日期的字符串,并以此創建一個 datetime 對象
參數:cls 表示類本身,date_string 表示時間日期字符串(如:'2019-11-06'),format 表示格式字符串(如:'%Y-%m-%d')
返回值:一個 datetime 對象
實例屬性(只讀,其實是靜態屬性)
year:返回年
month:返回月
hour:返回小時
minute:返回分鐘
second: 返回秒
microsecond: 返回微秒
tzinfo: 返回時區信息對象
fold: 返回 fold 的值(其實 fold 是類 datetime 在__new__方法中定義的一個默認為 0 的參數,需要以關鍵字參數的形式傳入)
實例方法(常用)
timetuple(self)
功能:返回與 time.localtime() 兼容的本地時間元組
參數:self 表示對象本身
返回值:時間元組
timestamp(self)
功能:返回與對象相應的時間戳
參數:self 表示對象本身
返回值:一個浮點數,表示時間戳
utctimetuple(self)
功能:返回與time.gmtime()兼容的UTC時間元組
參數:self 表示對象本身
返回值:時間元組
date(self)
功能:返回對象的日期部分
參數:self 表示對象本身
返回值:一個 datetime.date 對象,表示日期部分
time(self)
功能:返回對象的時間部分
參數:self 表示對象本身
返回值:一個 tzinfo 為 None 的 datetime.time 對象,表示時間部分
timetz(self)
功能:返回對象的時間部分
參數:self 表示對象本身
返回值:返回一個時間部分和 tzinfo 屬性與 self 相同的 datetime.time對象
replace(self, year=None, month=None, day=None, hour=None,
minute=None, second=None, microsecond=None, tzinfo=True,
*, fold=None)無錫婦科醫院哪家好 http://mobile.xasgyy.net/
功能:返回為指定字段具有新值的新日期時間
參數:對象本身和年月日...
返回值:一個新的與 self 同類型的對象
ctime(self)
功能:返回代表時間和日期的字符串,格式為 ctime() 風格,如:Tue Oct 8 15:34:17 2019
參數:self 表示對象本身
返回值:一個表示時間日期的字符串
strftime(self, format)
功能:返回指定格式的時間日期字符串
參數:format 表示時間日期的格式字符串
返回值:一個字符串
weekday(self)
功能:返回星期幾
參數:self 表示對象本身
返回值:一個[0, 6]的整數,0 表示星期一
isoweekday(self)
功能:返回星期幾
參數:self 表示對象本身
返回值:一個[1, 7]的整數,1 表示星期一
isocalendar(self)
功能:返回I年、第幾周、周幾
參數:self 表述對象本身
返回值:返回一個包含ISO年,周號和工作日的三元組。
datetime.time
datetime 模塊下的 time 類是一種具體的時間類型,它的實例代表一天(本地)的時間,與任何特定的日期無關,并且 time 對象可以通過 tzinfo 對象進行調整。time 的實例支持大于、小于、大于等于、小于等于的運算,并可以作為字典的鍵。在布爾上下文中,time 對象始終為 True
詳細介紹如下:
構造函數: datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
它的各個參數的含義與范圍都于 datetime 類中相應的參數相同,不同的是 datetime.time 類的所有參數都有默認值,
所以在創建 datetime.time對象時可以不傳入任何參數
類屬性:
min:表示最早的時間,即 time(0, 0, 0, 0)
max: 表示最晚的時間,即 time(23, 59, 59, 999999)
resolution:表示兩個非相等 time 對象之間可能的最小差異,即 timedelta(microseconds=1)
# 這里需要注意,datetime.time 對象不支持算術運算
類方法(常用構造方法)
fromisoformat(cls, time_string)
功能:按 time_string 提供的格式構造一個 time 對象
參數:cls 表示 datetime.time 類,time_string 表示時間字符串
返回值:一個 datetime.time 對象
PS:time_string 提供的格式需要滿足 time.isoformat() 要求的格式,具體為:HH[:MM[:SS[.fff[fff]]]][+HH:MM[:SS[.ffffff]]]
實例屬性(只讀,其實是靜態屬性)
hour:返回小時
minute:返回分鐘
second: 返回秒
microsecond: 返回微秒
tzinfo: 作為 tzinfo 參數傳遞給時間構造函數的對象,如果沒有傳遞則為 None。
fold: 返回 fold 的值,0 或 1
實例方法(常用)
isoformat(self, timespec='auto')
功能:以ISO格式返回表示時間的字符串,即 HH:MM:SS.ffffff,如果 microsecond為 0,則返回HH:MM:SS
參數:self 表示對象本身;timespec用于指定要包括的時間的其他組成部分的數量,它的值可以是下面的一種
'auto':如果 microsecond 是 0 則格式同 'seconds',否則同 'microseconds'
'hours':包含 hour,并采用 HH 格式
'minutes':包含 hour 和 minute,并采用 HH:MM 格式
'seconds':包含 hour、minute、second,并采用 HH:MM:SS 格式
'milliseconds':包括全部,但將小數秒部分截短(是直接舍去,而不是四舍五入)至毫秒。即 HH:MM:SS.sss 格式
'microseconds':包括 HH:MM:SS.ffffff 格式的全部時間。
返回值:一個字符串
strftime(self, format)
功能:返回表示時間的字符串,由明確的格式字符串控制
參數:self 表示對象本身,format 表示格式字符串,如:'%H:%M:%S'
返回值:一個字符串
datetime.timedelta
timedelta 類的實例表示持續時間,即兩個日期或時間的差。它的對象支持比較運算,加或減去一個同類型對象,乘或除一個整數,一元加、減,和 abs 運算,支持 divmod() 函數;timedelta 還可以作為字典鍵。在布爾上下文中,當且僅當 timedelta 對象不為 timedelta(0) 時,表示為 True。
詳細介紹如下:
構造函數: datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
參數:所有參數都是可選的,且參數可以是整數或浮點數,也可以是正數或負數
類屬性
min: 表示最負的 timedelta 對象,即 timedelta(-999999999)
max:表示最正的 timedelta 對象,即 timedelta(days=999999999, hours=23, minutes=59, seconds=59, microseconds=999999)
resolution:表示兩個不相等的 timedelta 對象之間可能的最小差,即 timedelta(microseconds=1)
實例屬性(只讀,其實是靜態屬性)
days: 返回天數,介于-999999999和999999999之間
seconds: 返回秒數,介于0至86399(含)之間
microseconds:返回毫微秒數,介于0至999999(含)之間
實例方法
total_seconds(self)
功能:返回持續時間中包含的總秒數
參數:self表示對象本身
返回值:一個浮點數
“Python的datetime模塊有哪些類型”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。