datetime在python中比較常用,主要用來處理時間日期,使用前先倒入datetime模塊。下面總結(jié)下本人想到的幾個常用功能。
創(chuàng)新互聯(lián)建站主要從事做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)河北,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
1、當(dāng)前時間:
print datetime.datetime.now()2015-07-17 16:39:15.712000 print type(datetime.datetime.now())
type 'datetime.datetime'
返回的datetime時間格式。
2、當(dāng)前日期
print datetime.datetime.now().date()2015-07-17 print type(datetime.datetime.now().date())
type 'datetime.date'
3、當(dāng)前時間tuple
datetime.datetime.now().timetuple()time.struct_time(tm_year=2015, tm_mon=7, tm_mday=17, tm_hour=16, tm_min=51, tm_sec=26, tm_wday=4, tm_yday=198, tm_isdst=-1)
datetime.datetime.now().timetuple().tm_mday17
4、時間移動(幾天、幾小時前后...)
使用datetime.timedelta這個方法來前后移動時間,可以用的參數(shù)有weeks,days,hours,minutes,seconds,microseconds。
print datetime.datetime.now() + datetime.timedelta(days=1)2015-07-18 16:49:48.574000 print datetime.datetime.now() + datetime.timedelta(hours=1)2015-07-17 17:49:57.122000 print datetime.datetime.now() + datetime.timedelta(minutes=-30)2015-07-17 16:20:08.619000
上個月最后一天
print datetime.date(day=1,month=datetime.date.today().month,year=datetime.date.today().year) - datetime.timedelta(days=1)2015-06-30
5、獲取兩個時間的時間差
(datetime.datetime.now() - datetime.datetime.utcnow()).total_seconds()
28800.0
6、時間轉(zhuǎn)化
datetime轉(zhuǎn)str格式:
datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")'2015-07-17 16:58:46'
str格式轉(zhuǎn)datetime格式:
datetime.datetime.strptime("2015-07-17 16:58:46","%Y-%m-%d %H:%M:%S")
datetime.datetime(2015, 7, 17, 16, 58, 46)
print datetime.datetime.strptime("2015-07-17 16:58:46","%Y-%m-%d %H:%M:%S")2015-07-17 16:58:46 print type(datetime.datetime.strptime("2015-07-17 16:58:46","%Y-%m-%d %H:%M:%S"))
type 'datetime.datetime'
datetime轉(zhuǎn)timestamp:
import time now=datetime.datetime.now() time.mktime(now.timetuple())1437123812.0
timestamp轉(zhuǎn)datetime:
datetime.datetime.fromtimestamp(1437123812.0)datetime.datetime(2015, 7, 17, 17, 3, 32)
print datetime.datetime.fromtimestamp(1437123812.0)
2015-07-17 17:03:32
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格式的時間。
python中的時間模塊主要有time, datetime。
I, time模塊
time模塊中包含了四種時間格式:
float格式,即給定時間相對于epoch增加的秒數(shù)
tuple格式,一個九元組 (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格式,以指定的格式生成的時間
針對這幾種時間格式,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)前時間相對于epoch的秒數(shù)外,其他函數(shù)都要求有時間的輸入,如果沒有輸入,則默認(rèn)使用當(dāng)前時間。
另外,strftime和strptime中的format使用下面的格式:
%a 英文星期簡寫
%A 英文星期的完全
%b 英文月份的簡寫
%B 英文月份的完全
%c 顯示本地日期時間
%d 日期,取1-31
%H 小時, 0-23
%I 小時, 0-12
%m 月, 01 -12
%M 分鐘,1-59
%j 年中當(dāng)天的天數(shù)
%w 顯示今天是星期幾
%W 第幾周
%x 當(dāng)天日期
%X 本地的當(dāng)天時間
%y 年份 00-99間
%Y 年份的完整拼寫
%S 秒(00-59)
除了上述的時間轉(zhuǎn)換函數(shù)之外,模塊還提供了下面的函數(shù):
clock() 返回進(jìn)程的創(chuàng)建時間,以秒計(jì)數(shù)的float
sleep(float) sleep一段時間,以秒計(jì)數(shù)
tzset() 更改時區(qū)
II, datetime
datetime模塊定義了下面這幾個類:
datetime.date:表示日期的類。常用的屬性有year, month, day;datetime.time:表示時間的類。常用的屬性有hour, minute, second, microsecond;datetime.datetime:表示日期時間。datetime.timedelta:表示時間間隔,即兩個時間點(diǎn)之間的長度。datetime.tzinfo:與時區(qū)有關(guān)的相關(guān)信息。(這里不詳細(xì)充分討論該類,感興趣的童鞋可以參考python手冊)
注 :上面這些類型的對象都是不可變(immutable)的。
下面詳細(xì)介紹這些類的使用方式。
date類
date類表示一個日期。日期由年、月、日組成(地球人都知道~~)。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對象所能表示的最大、最小日期;date.resolution:date對象表示日期的最小單位。這里是天。date.today():返回一個表示當(dāng)前本地日期的date對象;date.fromtimestamp(timestamp):根據(jù)給定的時間戮,返回一個date對象;datetime.fromordinal(ordinal):將Gregorian日歷時間轉(zhuǎn)換為date對象;(Gregorian Calendar :一種日歷表示方法,類似于我國的農(nóng)歷,西方國家使用比較多,此處不詳細(xì)展開討論。)
time.sleep() 函數(shù)命名來源于英文單詞time(時間)和sleep(睡眠)。
time 是python帶的非內(nèi)置庫,使用時需要import,主要用于處理和時間相關(guān)的操作。
time.sleep用于給定時間內(nèi)掛起(等待)當(dāng)前線程的執(zhí)行。
time.sleep() 函數(shù)的例子:
可以注釋掉time.sleep(2)再運(yùn)行一次對比一下
可以看到雖然都是打印出一樣的結(jié)果,但time.sleep()加入了等待時間
這里還要解釋一下python中線程與進(jìn)程的區(qū)別。
舉個例子,廚房做菜看成是一個進(jìn)程,那么這個進(jìn)程下面就可能有多個人或一個人(cpu基本執(zhí)行單元,即線程)來執(zhí)行,多個人可以分別洗菜,刷碗,擺盤等等同時作業(yè),他們又是共享這個廚房的資源的。每個人存在一定的資源競爭關(guān)系,比如爐火只有1個。
這里time.sleep是針對線程執(zhí)行的,也就是其中一個人去sleep睡覺了,不影響其他人的繼續(xù)工作。
參數(shù)
該函數(shù)沒有返回值。
結(jié)果類似如下:
可以看到秒數(shù)相差了5
無
time.sleep()常用于推遲執(zhí)行的場景
在python中,與時間相關(guān)的模塊有:time,datetime以及calendar
對基礎(chǔ)運(yùn)行環(huán)境有疑問的,推薦參考: python函數(shù)深入淺出 0.基礎(chǔ)篇
這樣可以嗎
#?-*-?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
本文標(biāo)題:關(guān)于時間函數(shù)python的信息
文章出自:http://m.newbst.com/article4/dssedie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站建設(shè)、虛擬主機(jī)、網(wǎng)頁設(shè)計(jì)公司、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)