這需求折騰了我半天..
創(chuàng)新互聯(lián)長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為臨夏企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、成都網(wǎng)站制作,臨夏網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
import time
import datetime as datetime
def late_time(time2):
# 先獲得時間數(shù)組格式的日期
#time2是外部傳入的任意日期
now_time = datetime.datetime.strptime(time2, '%Y-%m-%d')
#如需求是當(dāng)前時間則去掉函數(shù)參數(shù)改寫 ? ? ?為datetime.datetime.now()
threeDayAgo = (now_time - datetime.timedelta(days =30))
# 轉(zhuǎn)換為時間戳
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
time模塊是python專門用來處理時間的內(nèi)建庫。
下面我們來記錄一些基本使用方法。
ps: 用到了一些概念,比如unix時間戳,感興趣的同學(xué)自行百度。
下文參考他人博客內(nèi)容, 傳送門
time.time()函數(shù)獲取的是Unix時間戳。
返回的是一個float類型的數(shù)值。
在python中的time模塊中定義了一個叫struct_time的元組,是用來構(gòu)建時間對象的。
struct_time元組共9個元素組成,如下圖:
這個函數(shù)可以接受一個unix時間戳,然后轉(zhuǎn)換為struct_time。
如果不傳入second參數(shù),則會返回當(dāng)前時間的時間戳的struct_time對象
再試試傳入當(dāng)前時間的時間戳,是否能得到上面的struct_time呢?
和我們預(yù)期的結(jié)果一致。
和localtime函數(shù)類似,默認(rèn)情況gmtime函數(shù)獲取當(dāng)前時間的utc時間。
返回當(dāng)前時間的utc時間的struct_time對象。
也可以傳入任意的unix時間戳,來得到utc時間。
將一個時間戳struct_time對象轉(zhuǎn)換為時間戳。
傳入一個struct_time對象,返回"Sun Jun 20 23:21:05 1993"這種格式的字符串。不傳參數(shù),返回當(dāng)前時間的這種格式的字符串。
傳入格式和struct_time,返回按照format格式格式化后的時間字符串。
格式占位符可以參考下圖:
將字符串時間轉(zhuǎn)為struct_time,time.strftime()的逆向操作。
time()函數(shù)可以獲取當(dāng)前時間戳;ctime()函數(shù)可以以一種易讀的方式獲取系統(tǒng)當(dāng)前時間;gmtime()函數(shù)可獲取當(dāng)前0時區(qū)的struct_time格式的時間;localtime()函數(shù)可獲取當(dāng)前地區(qū)的struct_time格式的時間。