這樣可以嗎
讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、雅安服務(wù)器托管、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、兗州網(wǎng)站維護(hù)、網(wǎng)站推廣。
#?-*-?coding:?utf-8?-*-
import?datetime
__author__?=?'lpe234'
__date__?=?'2015-04-28'
for?i?in?range(10):
print?datetime.datetime.now().strftime('%Y-%m-%d?{0}'.format(i))
C:\Python27\python.exe?D:/00/gui/t.py
2015-04-28?0
2015-04-28?1
2015-04-28?2
2015-04-28?3
2015-04-28?4
2015-04-28?5
2015-04-28?6
2015-04-28?7
2015-04-28?8
2015-04-28?9
Process?finished?with?exit?code?0
time.sleep() 函數(shù)命名來(lái)源于英文單詞time(時(shí)間)和sleep(睡眠)。
time 是python帶的非內(nèi)置庫(kù),使用時(shí)需要import,主要用于處理和時(shí)間相關(guān)的操作。
time.sleep用于給定時(shí)間內(nèi)掛起(等待)當(dāng)前線(xiàn)程的執(zhí)行。
time.sleep() 函數(shù)的例子:
可以注釋掉time.sleep(2)再運(yùn)行一次對(duì)比一下
可以看到雖然都是打印出一樣的結(jié)果,但time.sleep()加入了等待時(shí)間
這里還要解釋一下python中線(xiàn)程與進(jìn)程的區(qū)別。
舉個(gè)例子,廚房做菜看成是一個(gè)進(jìn)程,那么這個(gè)進(jìn)程下面就可能有多個(gè)人或一個(gè)人(cpu基本執(zhí)行單元,即線(xiàn)程)來(lái)執(zhí)行,多個(gè)人可以分別洗菜,刷碗,擺盤(pán)等等同時(shí)作業(yè),他們又是共享這個(gè)廚房的資源的。每個(gè)人存在一定的資源競(jìng)爭(zhēng)關(guān)系,比如爐火只有1個(gè)。
這里time.sleep是針對(duì)線(xiàn)程執(zhí)行的,也就是其中一個(gè)人去sleep睡覺(jué)了,不影響其他人的繼續(xù)工作。
參數(shù)
該函數(shù)沒(méi)有返回值。
結(jié)果類(lèi)似如下:
可以看到秒數(shù)相差了5
無(wú)
time.sleep()常用于推遲執(zhí)行的場(chǎng)景
在python中,與時(shí)間相關(guān)的模塊有:time,datetime以及calendar
對(duì)基礎(chǔ)運(yùn)行環(huán)境有疑問(wèn)的,推薦參考: python函數(shù)深入淺出 0.基礎(chǔ)篇
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è)類(lèi):
datetime.date:表示日期的類(lèi)。常用的屬性有year, month, day;datetime.time:表示時(shí)間的類(lèi)。常用的屬性有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ì)充分討論該類(lèi),感興趣的童鞋可以參考python手冊(cè))
注 :上面這些類(lèi)型的對(duì)象都是不可變(immutable)的。
下面詳細(xì)介紹這些類(lèi)的使用方式。
date類(lèi)
date類(lèi)表示一個(gè)日期。日期由年、月、日組成(地球人都知道~~)。date類(lèi)的構(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類(lèi)定義了一些常用的類(lèi)方法與類(lèi)屬性,方便我們操作:
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 :一種日歷表示方法,類(lèi)似于我國(guó)的農(nóng)歷,西方國(guó)家使用比較多,此處不詳細(xì)展開(kāi)討論。)
這需求折騰了我半天..
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
time模塊
time這個(gè)模塊提供各種與時(shí)間相關(guān)的函數(shù)。相關(guān)功能,可以參見(jiàn)datetime和calendat模塊。
此模塊并非所有平臺(tái)提供所有功能,因平臺(tái)而異。
以下是對(duì)一些術(shù)語(yǔ)和慣例的解釋
初始時(shí)間因平臺(tái)而異。對(duì)于Unix平臺(tái),初始時(shí)間是1970,01,01,00:00:00(UTC)。查看每個(gè)操作平臺(tái)的初始時(shí)間可以使用time.gmtime(0)函數(shù)。
在所有POSIX平臺(tái)上,從初始時(shí)間以來(lái)的秒數(shù)都不包括閏秒
該模塊中的函數(shù)可能不處理初始時(shí)間以前和遙遠(yuǎn)未來(lái)的日期和時(shí)間,未來(lái)的分界點(diǎn)對(duì)于32位操作系統(tǒng)是2038年。
UTC是協(xié)調(diào)世界時(shí)(以前稱(chēng)為格林尼治標(biāo)準(zhǔn)時(shí)間,GMT)。縮寫(xiě)UTC不是一個(gè)錯(cuò)誤,而是英語(yǔ)和法語(yǔ)之間的妥協(xié)。
DST是夏令時(shí),在一年中的某些時(shí)候,時(shí)區(qū)通常會(huì)調(diào)整一個(gè)小時(shí)。DST規(guī)則是神奇的(由當(dāng)?shù)胤蓻Q定),每年都在變化。
各種實(shí)時(shí)函數(shù)的精度可能低于表示其值或參數(shù)的單位所建議的精度。
推薦學(xué)習(xí)《python教程》
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í)間。