日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python日期函数_Python日期时间处理: datestuff

發(fā)布時(shí)間:2023/12/20 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python日期函数_Python日期时间处理: datestuff 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python部落(python.freelycode.com)組織翻譯,禁止轉(zhuǎn)載,歡迎轉(zhuǎn)發(fā)。

問(wèn)題:

在一些場(chǎng)景下datetime包的使用并非那么簡(jiǎn)便易用,同時(shí)很難找到其他的較為完整的替代方案。

原因:

誠(chéng)實(shí)地說(shuō),我非常喜愛(ài)datetime這個(gè)模塊,幾乎所有需要的操作都可以通過(guò)它實(shí)現(xiàn)。

但是,有一些情況下,datetime卻并沒(méi)有那么好用。比如:

1.創(chuàng)建日期時(shí)間范圍

2.創(chuàng)建未固定的日期時(shí)間

3.檢驗(yàn)兩個(gè)日期時(shí)間的差值是否在一定的范圍內(nèi)。

以下是datestuff包的簡(jiǎn)略介紹:

RelativeDate和RelativeDateTime

這兩個(gè)函數(shù)用來(lái)創(chuàng)建未固定的日期和時(shí)間,可以設(shè)置timedelta參數(shù)和factory method。

默認(rèn)情況下,RelativeDate以date.today,RelativeDateTime以datetime.now作為默認(rèn)的factory實(shí)現(xiàn)。兩個(gè)功能都有初始默認(rèn)timedelta(0):

但也可以使用其他的factory:

只要內(nèi)部的factory能生成date或者datetime匹配的對(duì)象,那么都可以正常運(yùn)行。這里的匹配是指date和datetime接口的匹配

另外,如果只是靜態(tài)的偏移,你可以簡(jiǎn)單地通過(guò)設(shè)置timedelta 或 dateutil relativedelta來(lái)設(shè)置偏移。需要注意的是,目前timedelta 和 relativedelta不會(huì)相互干涉。

RelativeDate和RelativeDateTime還允許使用標(biāo)準(zhǔn)運(yùn)算符(==,!=,>等)與date和datetime對(duì)象進(jìn)行比較。 使得快速定義靜態(tài)的date或者datetime邊界(例如在serializer或ORM模型中)非常有用:

事實(shí)上,加法和減法是對(duì)它們的偏移量進(jìn)行操作,而不是對(duì)date或datetime值操作。

另外還有一些函數(shù)可以構(gòu)造日期和時(shí)間對(duì)象,每個(gè)都允許傳遞偏移量,但默認(rèn)為timedelta():

RelativeDate.today: 默認(rèn)的構(gòu)造函數(shù)

RelativeDateTime.now: 默認(rèn)的構(gòu)造函數(shù),允許設(shè)置tzinfo

RelativeDateTime.utcnow: 生成UTC的日期對(duì)象(注意:它依賴(lài)于datetime.utcnow函數(shù))

RelativeDateTime.today: 默認(rèn)的構(gòu)造函數(shù),不允許設(shè)置tzinfo

方便起見(jiàn),也有一些構(gòu)造靜態(tài)時(shí)間對(duì)象的函數(shù):

RelativeDate.fromdate: 構(gòu)造常規(guī)的date對(duì)象

RelativeDateTime.fromdatetime: 構(gòu)造常規(guī)的datetime對(duì)象

RelativeDateTime.fromdate: 在RelativeDateTime中鬼爪常規(guī)的date對(duì)象,可以設(shè)置tzinfo,類(lèi)似于datetime.combine(the_date, time(tzinfo=tzinfo))

另外的靜態(tài)構(gòu)造函數(shù),如datetime.strptime,如果需要的話(huà),可以從以上函數(shù)中派生。

最后,在以上未直接提及的功能都被轉(zhuǎn)換到date或datetime中實(shí)現(xiàn)。

DateRange

設(shè)置時(shí)間段我發(fā)現(xiàn)事自己經(jīng)常需要的一種操作,然而,對(duì)于生成很長(zhǎng)間隔的時(shí)間段來(lái)說(shuō)是非常困難的。

相反,DateRange在Python3 range 基礎(chǔ)上構(gòu)建,該類(lèi)型具有查找,迭代,索引和區(qū)間分割的功能(分割返回新的DateRange對(duì)象)

DateRange還允許通過(guò)忽略停止參數(shù)來(lái)創(chuàng)建開(kāi)放式結(jié)束時(shí)間對(duì)象。如果使用len或者在分割或者索引選擇中使用負(fù)值,該功能將不起作用。

目前,DateRange不支持relativedelta,它使用timedelta.total_seconds以確保Python 2和3的兼容。 這個(gè)問(wèn)題也許在未來(lái)解決。然而,DateRange與date,datetime和timedelta的對(duì)象兼容。這一點(diǎn)也適用于RelativeDate和RelativeDateTime。

utils

目前,唯一的util是within_delta函數(shù),它用于比較兩個(gè)date或datetime(或類(lèi)似)對(duì)象之差是否在某個(gè)設(shè)定時(shí)間區(qū)間中。

如果需要檢驗(yàn)時(shí)間界限的話(huà),這個(gè)函數(shù)用起來(lái)比DateRange或RelativeDate更加輕便。但壞消息時(shí),它不能與relativedelta相互調(diào)用,因?yàn)樗蛅imedelta對(duì)象是無(wú)序的(至少在Python 3是這樣的)。

英文原文:https://github.com/justanr/datestuff

譯者:alanf

總結(jié)

以上是生活随笔為你收集整理的python日期函数_Python日期时间处理: datestuff的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。