Python小結(jié)_時間函數(shù)

主要是對dateutil模塊做個小結(jié),參考資料主要是資料1和官方文檔,感謝原作者。

之所以只對dateutil模塊總結(jié),是因為dateutil是高級封裝包,更加友好,對數(shù)據(jù)分析人員和建模人員來說更加易用,基本能解決日常的大部分場景。

dateutil模塊主要有兩個函數(shù),parser和rrule,其中parser是根據(jù)字符串解析成datetime,而rrule則是根據(jù)定義的規(guī)則來生成datetime。

1、parser

from dateutil.parser import parse

parse("2018-10-21")
parse("20181021") #? datetime.datetime(2018, 10, 21, 0, 0)

parse("21/10")
#? ValueError: month must be in 1..12

parse("Mar 15 2018") # 英文也能識別

2、rrule

rrule(self, freq, dtstart=None, interval=1, wkst=None,count=None, until=None, bysetpos=None,bymonth=None, bymonthday=None, byyearday=None, byeaster=None,byweekno=None, byweekday=None, byhour=None, byminute=None, bysecond=None,cache=False)

wkst:周開始時間,interval:間隔,count:指定生成多少個,byxxx:指定匹配的周期,如byweekday=(MO,TU)則只有周一周二的匹配。

from dateutil import rrule

# 間隔一天生成時間
list(rrule.rrule(rrule.DAILY,interval=2,dtstart=parse('2018-11-1'),until=parse('2018-11-5')))

# 只包含周六、周日的。
list(rrule.rrule(rrule.DAILY,byweekday=(rrule.SA,rrule.SU),dtstart=parse('2018-11-1'),until=parse('2018-11-5')))

# 計算時間差
rrule.rrule(rrule.MONTHLY,dtstart=parse('2018-3-15'),until=parse('2018-11-20')).count()
9

前一個月為m月,后一個月為n月,當日期不滿整月時,差的月數(shù)按n-m算,當日期滿整月后,差的月數(shù)按n-m+1算。

其實,python還有一個專門的日歷的包calendar,有興趣的朋友可以看看,也簡單的很。

3、常用操作

當前時間

date = DateUtil.date() #? Date

now = DateUtil.now() #? 當前時間字符串,格式:yyyy-MM-dd HH:mm:ss

today= DateUtil.today() #? 當前日期字符串,格式:yyyy-MM-dd

獲取細分時間,如年、月等,DateUtil.year(date)。

進行時間偏移的計算,newDate2 = DateUtil.offsetDay(date,3)。

年齡計算,DateUtil.ageOfNow("1990-01-30")

附,參考資料:

1、Python時間處理-dateutil模塊,http://www.itdecent.cn/p/f29dddce3a9a

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容