時(shí)期(period)表示的是時(shí)間區(qū)間,比如數(shù)日、數(shù)月、數(shù)季、數(shù)年等。Period類所 表示的就是這種數(shù)據(jù)類型,其構(gòu)造函數(shù)需要用到一個(gè)字符串或整數(shù),以及表11-4中 的頻率:

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到貴定網(wǎng)站設(shè)計(jì)與貴定網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、空間域名、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋貴定地區(qū)。
這里,這個(gè)Period對(duì)象表示的是從2007年1月1日到2007年12月31日之間的整段時(shí)間。
只需對(duì)Period對(duì)象加上或減去一個(gè)整數(shù)即可達(dá)到根據(jù)其頻率進(jìn)行位移的效果:
如果兩個(gè)Period對(duì)象擁有相同的頻率,則它們的差就是它們之間的單位數(shù)量:
period_range函數(shù)可用于創(chuàng)建規(guī)則的時(shí)期范圍:
PeriodIndex類保存了一組Period,它可以在任何pandas數(shù)據(jù)結(jié)構(gòu)中被用作軸索引:
如果你有一個(gè)字符串?dāng)?shù)組,你也可以使用PeriodIndex類:
Period和PeriodIndex對(duì)象都可以通過(guò)其asfreq方法被轉(zhuǎn)換成別的頻率。假設(shè)我們有 一個(gè)年度時(shí)期,希望將其轉(zhuǎn)換為當(dāng)年年初或年末的一個(gè)月度時(shí)期。該任務(wù)非常簡(jiǎn) 單:
你可以將Period('2007','A-DEC')看做一個(gè)被劃分為多個(gè)月度時(shí)期的時(shí)間段中的游 標(biāo)。圖11-1對(duì)此進(jìn)行了說(shuō)明。
對(duì)于一個(gè)不以12月結(jié)束的財(cái)政年度,月度子時(shí)期的歸屬情況就不一樣了:
在將高頻率轉(zhuǎn)換為低頻率時(shí),超時(shí)期(superperiod)是由子時(shí)期(subperiod)所 屬的位置決定的。例如,在A-JUN頻率中,月份“2007年8月”實(shí)際上是屬于周期“2008年”的:
完整的PeriodIndex或TimeSeries的頻率轉(zhuǎn)換方式也是如此:
這里,根據(jù)年度時(shí)期的第一個(gè)月,每年的時(shí)期被取代為每月的時(shí)期。
如果我們想要 每年的最后一個(gè)工作日,我們可以使用“B”頻率,并指明想要該時(shí)期的末尾:
未完待續(xù)。。。
時(shí)間單位自然是秒(second)了。
import time
start = time.time()
# do something
end = time.time()
delta = end - start # is a float, unit: second
python中表達(dá)時(shí)間的函數(shù)有很多,包括date, datetime, time, 等等。
日期應(yīng)該是沒(méi)有單位的,但是“差”是有單位的:day,hour,minute, second。具體采用什么單位取決你的需求了。不過(guò),second 是“萬(wàn)能”的,可以使用mktime,strptime等函數(shù)進(jìn)行轉(zhuǎn)換或者格式化成你想要的時(shí)間。
python中的時(shí)間模塊主要有time, datetime。
I, time模塊
time模塊中包含了四種時(shí)間格式:
float格式,即給定時(shí)間相對(duì)于epoch增加的秒數(shù)
tuple格式,一個(gè)九元組 (tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst)
string格式,'Mon Feb 6 15:00:06 2012'
format格式,以指定的格式生成的時(shí)間
針對(duì)這幾種時(shí)間格式,time模塊提供了函數(shù)在格式之間相互轉(zhuǎn)換。
asctime(tuple) -string
ctime(float) -string
gmtime(float) -tuple
localtime(float) -tuple
mktime(tuple) -float
strftime(format, tuple) -format string
strptime(formatstring, format) -tuple
time() - float
上述函數(shù)中,除了time()函數(shù)直接返回當(dāng)前時(shí)間相對(duì)于epoch的秒數(shù)外,其他函數(shù)都要求有時(shí)間的輸入,如果沒(méi)有輸入,則默認(rèn)使用當(dāng)前時(shí)間。
另外,strftime和strptime中的format使用下面的格式:
%a 英文星期簡(jiǎn)寫(xiě)
%A 英文星期的完全
%b 英文月份的簡(jiǎn)寫(xiě)
%B 英文月份的完全
%c 顯示本地日期時(shí)間
%d 日期,取1-31
%H 小時(shí), 0-23
%I 小時(shí), 0-12
%m 月, 01 -12
%M 分鐘,1-59
%j 年中當(dāng)天的天數(shù)
%w 顯示今天是星期幾
%W 第幾周
%x 當(dāng)天日期
%X 本地的當(dāng)天時(shí)間
%y 年份 00-99間
%Y 年份的完整拼寫(xiě)
%S 秒(00-59)
除了上述的時(shí)間轉(zhuǎn)換函數(shù)之外,模塊還提供了下面的函數(shù):
clock() 返回進(jìn)程的創(chuàng)建時(shí)間,以秒計(jì)數(shù)的float
sleep(float) sleep一段時(shí)間,以秒計(jì)數(shù)
tzset() 更改時(shí)區(qū)
II, datetime
datetime模塊定義了下面這幾個(gè)類:
datetime.date:表示日期的類。常用的屬性有year, month, day;datetime.time:表示時(shí)間的類。常用的屬性有hour, minute, second, microsecond;datetime.datetime:表示日期時(shí)間。datetime.timedelta:表示時(shí)間間隔,即兩個(gè)時(shí)間點(diǎn)之間的長(zhǎng)度。datetime.tzinfo:與時(shí)區(qū)有關(guān)的相關(guān)信息。(這里不詳細(xì)充分討論該類,感興趣的童鞋可以參考python手冊(cè))
注 :上面這些類型的對(duì)象都是不可變(immutable)的。
下面詳細(xì)介紹這些類的使用方式。
date類
date類表示一個(gè)日期。日期由年、月、日組成(地球人都知道~~)。date類的構(gòu)造函數(shù)如下:
class datetime.date(year, month, day):參數(shù)的意義就不多作解釋了,只是有幾點(diǎn)要注意一下:
year的范圍是[MINYEAR, MAXYEAR],即[1, 9999];month的范圍是[1, 12]。(月份是從1開(kāi)始的,不是從0開(kāi)始的~_~);day的最大值根據(jù)給定的year, month參數(shù)來(lái)決定。例如閏年2月份有29天;
date類定義了一些常用的類方法與類屬性,方便我們操作:
date.max、date.min:date對(duì)象所能表示的最大、最小日期;date.resolution:date對(duì)象表示日期的最小單位。這里是天。date.today():返回一個(gè)表示當(dāng)前本地日期的date對(duì)象;date.fromtimestamp(timestamp):根據(jù)給定的時(shí)間戮,返回一個(gè)date對(duì)象;datetime.fromordinal(ordinal):將Gregorian日歷時(shí)間轉(zhuǎn)換為date對(duì)象;(Gregorian Calendar :一種日歷表示方法,類似于我國(guó)的農(nóng)歷,西方國(guó)家使用比較多,此處不詳細(xì)展開(kāi)討論。)
對(duì)于像'Wed, 11 Apr 2012 09:37:05 +0800'的時(shí)間格式化可如下解:
date='Wed,?11?Apr?2012?09:37:05?+0800'
dd=datetime.datetime.strptime(date,'%a,?%d?%b?%Y?%H:%M:%S?%z')
dd.strftime('%Y-%m-%d?%H:%M:%S')
Python格式化日期時(shí)間的函數(shù)為datetime.datetime.strftime();由字符串轉(zhuǎn)為日期型的函數(shù)為:datetime.datetime.strptime(),兩個(gè)函數(shù)都涉及日期時(shí)間的格式化字符串,列舉如下:
%a?Abbreviated?weekday?name???
%A?Full?weekday?name???
%b?Abbreviated?month?name???
%B?Full?month?name???
%c?Date?and?time?representation?appropriate?for?locale???
%d?Day?of?month?as?decimal?number?(01?-?31)???
%H?Hour?in?24-hour?format?(00?-?23)???
%I?Hour?in?12-hour?format?(01?-?12)???
%j?Day?of?year?as?decimal?number?(001?-?366)???
%m?Month?as?decimal?number?(01?-?12)???
%M?Minute?as?decimal?number?(00?-?59)???
%p?Current?locale's?A.M./P.M.?indicator?for?12-hour?clock???
%S?Second?as?decimal?number?(00?-?59)???
%U?Week?of?year?as?decimal?number,?with?Sunday?as?first?day?of?week?(00?-?51)???
%w?Weekday?as?decimal?number?(0?-?6;?Sunday?is?0)???
%W?Week?of?year?as?decimal?number,?with?Monday?as?first?day?of?week?(00?-?51)???
%x?Date?representation?for?current?locale???
%X?Time?representation?for?current?locale???
%y?Year?without?century,?as?decimal?number?(00?-?99)???
%Y?Year?with?century,?as?decimal?number???
%z,?%Z?Time-zone?name?or?abbreviation;?no?characters?if?time?zone?is?unknown???
%%?Percent?sign
time()函數(shù)可以獲取當(dāng)前時(shí)間戳;ctime()函數(shù)可以以一種易讀的方式獲取系統(tǒng)當(dāng)前時(shí)間;gmtime()函數(shù)可獲取當(dāng)前0時(shí)區(qū)的struct_time格式的時(shí)間;localtime()函數(shù)可獲取當(dāng)前地區(qū)的struct_time格式的時(shí)間。
這需求折騰了我半天..
import time
import datetime as datetime
def late_time(time2):
# 先獲得時(shí)間數(shù)組格式的日期
#time2是外部傳入的任意日期
now_time = datetime.datetime.strptime(time2, '%Y-%m-%d')
#如需求是當(dāng)前時(shí)間則去掉函數(shù)參數(shù)改寫(xiě) ? ? ?為datetime.datetime.now()
threeDayAgo = (now_time - datetime.timedelta(days =30))
# 轉(zhuǎn)換為時(shí)間戳
timeStamp =int(time.mktime(threeDayAgo.timetuple()))
# 轉(zhuǎn)換為其他字符串格式
otherStyleTime = threeDayAgo.strftime("%Y-%m-%d")
return otherStyleTime
a = late_time("2019-3-30")
print(a)# 打印2018-02-28
網(wǎng)站名稱:python時(shí)間函數(shù)的簡(jiǎn)單介紹
瀏覽路徑:http://chinadenli.net/article46/dsiheeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、品牌網(wǎng)站建設(shè)、商城網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、微信公眾號(hào)、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容