本篇文章帶給大家的內容是關於Python中datetime模組的用法及常用方法總結,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
datetime模組重新封裝了time模組,提供更多的接口,提供的類別有:
date,表示日期的類別
time,表示時間的類別
datetime,表示日期和時間的類別
timedelta,表示時間間隔,即兩個時間點的間隔
tzinfo,與時區相關的資訊
( 這些類別的物件都是不可變的)
(類別有類別方法,類別方法裡有方法,方法繼承了類別方法)
1、date類別
datetime.date(year,month,day)
常用的類別方法與屬性:
date.max | 物件所能表示的最大日期(9999-12-31) |
#date.min | 物件所能表示的最小日期(0001 -01-01) |
date.today() | 傳回一個表示目前本地時間的date物件 |
date.resolution | #date物件表示日期的最小單位(天) |
date.fromtimestamp(timestamp) | #根據給定的時間戳,傳回一個date物件 |
實作:
類別方法
import datetime import time print(datetime.date.max) print(datetime.date.min) print(datetime.date.today()) print(datetime.date.resolution) print(datetime.date.fromtimestamp(time.time()+3600000)) # 给定时间戳的 日期
result
9999-12-31 0001-01-01 2018-09-17 1 day, 0:00:00 2018-10-29
其中常用的方法與屬性:
d.year | |
d.month | 月 |
d.day | 日 |
d.replace(year[,month[,day]]) | 生成並返回一個新的日期對象,原日期對像不變 |
d.timetuple() | 傳回日期對應的時間元組(time.struct_time)物件 |
#d.toordinal() |
返回日期是自0001-01-01開始的第多少天 |
d .weekday() | 回傳日期是星期幾,[0,6],0表示星期一,1表示星期二 |
##d.isoweekday() | #回傳日期是星期幾,[1,7],1表示星期一,2表示星期二 |
d.isocalendar() | 回傳格式為(year,weekday,isoweekday)的元組 |
#d.isoformat() | 傳回'YYYY-MM-DD'格式的日期字串 |
d.strftime() | 自訂格式化字串(和time模組的strftime()方法相同) |
time.max | 表示的最大时间 |
time.min | 表示的最小时间 |
time.resolution | 时间的最小单位,这里是1微秒 |
常用的方法与属性:
t.hour | 时 |
t.minute | 分 |
t.second | 秒 |
t.microsecond | 微秒 |
t.tzinfo | 时区信息 |
t.replace() | 用参数指定替代(时,分,秒,微秒,时区)对象,生成并返回新的对象 |
t.isoformat() | 返回'HH:MM:SS'格式字符串 |
t.strftime() | 返回自定义格式化字符串 |
3、datetime類別
等於date和time結合起來
datetime.datetime(year,month,day[,hour[,minute[,second[,microsecond[,tzinfo]]]]]])
常用的類別方法與屬性:
datetime.max | #最大日期 |
datetime.min | #最小日期 |
#datetime.resolution | datetime物件所表示日期的最小單位,1微秒 |
#datetime.today() | 傳回目前本機時間 |
datetime.now([tz]) | 傳回目前本機時間,如果指定tz,則傳回tz時區當地時間 |
#datetime.utcnow() | 傳回目前UTC時間 |
datetime.fromtimestamp(timestamp[,tz]) | 根據給定的時間戳返回datetime對象,如果指定tz,則傳回tz時區datetime物件 |
#datetime.utcfromtimestamp(timestamp) | #根據時間戳建立一個datetime物件 |
datetime.combine(date,time) | 把指定的date和time物件整合為datetime物件 |
datetime.strftime(date_string,format) | 將格式化字串轉換為datetime對象 |
实现:
类方法
import datetime import time print(datetime.datetime.resolution) print(datetime.datetime.today()) print(datetime.datetime.now()) print(datetime.datetime.utcnow()) print(datetime.datetime.fromtimestamp(time.time())) print(datetime.datetime.utcfromtimestamp(time.time())) print(datetime.datetime.combine(datetime.date(2019, 3, 5), datetime.time(3, 2, 45))) print(datetime.datetime.strftime(datetime.date(2019,9,2),'%Y-%m-%d %X'))
result
0:00:00.000001 2018-09-17 20:32:36.868500 2018-09-17 20:32:36.868500 2018-09-17 12:32:36.868500 2018-09-17 20:32:36.868500 2018-09-17 12:32:36.868500 2019-03-05 03:02:45 2019-09-02 00:00:00
其中常用的方法与属性:
dt.year dt.month dt.day |
年 月 日 |
dt.hour dt.minute dt.second |
时 分 秒 |
dt.microsecond | #.微妙 |
##dt .tzinfo | 時區資訊 |
#dt.date() | 取得dt的date物件 |
dt.time() | 取得dt的time對象,tzinfo 為none |
dt.timetz() | #取得dt的time對象,tzinfo 為與datetime的tzinfo相同 |
dt.replace() | #指定參數替代(年,月,日,時,分,秒,微妙,時區),產生並傳回新物件 |
#dt.timetuple() | 傳回日期時間對應的時間元組(time.struct_time)(不包括tzinfo) |
dt.utctimetuple() | ##返回UTC時間對應的時間元組(不包括tzinfo)|
回傳dt物件對應的時間戳 | |
返回日期是是自0001-01-01 開始的第多少天(與date類別相同) | |
返回日期是星期幾,[ 1, 7], 1表示星期一(與date類別相同) | |
傳回格式如(year,month,day)的時間元組(與date類別相同) | |
#傳回格式如'YYYY-MM-DD HH:MM:SS'的字串 | |
等價與time模組的time.ctime(time.mktime(d.timetuple())) | |
傳回指定格式的時間字串 |
td.days | 天(范围[-999999999,999999999]) |
td.seconds | 秒(范围[0,86399]) |
td.microseconds | 微秒(范围[0,999999]) |
td.total_seconds() | 以秒为单位返回该时间差 |
实现:
方法
m = datetime.datetime.now() print(m) l = m + datetime.timedelta(3) print(l) n = m + datetime.timedelta(hours=4) print(n) span = l-m print(span) print(span.total_seconds())
result
2018-09-17 16:38:43.021000 2018-09-20 16:38:43.021000 2018-09-17 20:38:43.021000 3 days, 0:00:00 259200.0
5、tzinfo时区类
其中,tzinfo是一个抽象类,所以不能直接被实例化
时间转换需要用datetime和pytz来转换时区
以上是Python中datetime模組的用法及常用方法總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!