十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
python中的時(shí)間模塊主要有time, datetime。
創(chuàng)新互聯(lián)是一家從事企業(yè)網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、成都做網(wǎng)站、行業(yè)門戶網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)制作的專業(yè)網(wǎng)站制作公司,擁有經(jīng)驗(yàn)豐富的網(wǎng)站建設(shè)工程師和網(wǎng)頁設(shè)計(jì)人員,具備各種規(guī)模與類型網(wǎng)站建設(shè)的實(shí)力,在網(wǎng)站建設(shè)領(lǐng)域樹立了自己獨(dú)特的設(shè)計(jì)風(fēng)格。自公司成立以來曾獨(dú)立設(shè)計(jì)制作的站點(diǎn)1000多家。
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í)間的輸入,如果沒有輸入,則默認(rèn)使用當(dāng)前時(shí)間。
另外,strftime和strptime中的format使用下面的格式:
%a 英文星期簡(jiǎn)寫
%A 英文星期的完全
%b 英文月份的簡(jiǎn)寫
%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 年份的完整拼寫
%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開始的,不是從0開始的~_~);day的最大值根據(jù)給定的year, month參數(shù)來決定。例如閏年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ì)展開討論。)
在大多數(shù)編程語言中,使用date函數(shù)可以獲取當(dāng)前日期和時(shí)間。要顯示每月的1號(hào),可以使用date函數(shù)獲取當(dāng)前日期,然后從中提取月份,如果當(dāng)前日期是1號(hào),則顯示當(dāng)前日期,否則,顯示下一個(gè)月的1號(hào)。
import datetime
now = datetime.datetime.now()
first_day = datetime.datetime(now.year, now.month, 1)
print(first_day.strftime("%Y-%m-%d"))
以下是一個(gè)示例代碼片段,用于在Python中顯示每月的1號(hào):
這段代碼首先使用datetime.datetime.now()函數(shù)獲取當(dāng)前日期和時(shí)間。然后,使用datetime.datetime類創(chuàng)建一個(gè)新的datetime對(duì)象,該對(duì)象表示當(dāng)前月份的第一天,即將day參數(shù)設(shè)置為1。
最后,使用strftime方法將日期對(duì)象格式化為字符串,并使用"%Y-%m-%d"格式指定輸出日期的格式,這將顯示年-月-日格式的日期。
表示日期的意思。
Python采用強(qiáng)制縮進(jìn)的方式使得代碼具有較好可讀性。而Python語言寫的程序不需要編譯成二進(jìn)制代碼。
Python的作者設(shè)計(jì)限制性很強(qiáng)的語法,使得不好的編程習(xí)慣(例如if語句的下一行不向右縮進(jìn))都不能通過編譯。在計(jì)算機(jī)內(nèi)部,Python解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式,然后再把它翻譯成計(jì)算機(jī)使用的機(jī)器語言并運(yùn)行。
這使得使用Python更加簡(jiǎn)單。也使得Python程序更加易于移植。
1,date是日期,通常就是日歷上的年月日,比較大一點(diǎn)的時(shí)間單位。
2,time通常就是指秒鐘數(shù),即從1970年1月1日至今進(jìn)過的秒鐘數(shù)?;蛘咧敢惶熘械臅r(shí)分秒,比較小一點(diǎn)的時(shí)間單位。就像你問別人What's the time,別人會(huì)告訴你幾點(diǎn)幾分,而不會(huì)告訴你年月日。
3,datetime就是年月日和時(shí)分秒,包含以上兩者。
datetime模塊是用來處理日期時(shí)間的,通常是用來進(jìn)行計(jì)算日期,可以很方便的使用加減運(yùn)算。而time模塊主要是用來處理秒鐘時(shí)間的,當(dāng)然這個(gè)秒鐘數(shù)也可以轉(zhuǎn)化成日期,獲取當(dāng)前日期通常就是從這個(gè)模塊獲取的。不過說time時(shí),有時(shí)候表示的也會(huì)很寬泛,因?yàn)樗脑~義就是時(shí)間嘛,這個(gè)不用太計(jì)較的。不過date的意義是確定無疑的。