Python計(jì)時(shí)相關(guān)操作詳解【time,datetime】
本文實(shí)例講述了Python計(jì)時(shí)相關(guān)操作。分享給大家供大家參考,具體如下:
內(nèi)容目錄:
1. 時(shí)間戳
2. 當(dāng)前時(shí)間
3. 時(shí)間差
4. python中時(shí)間日期格式化符號(hào)
5. 例子
一、時(shí)間戳
時(shí)間戳是自 1970 年 1 月 1 日(08:00:00 GMT)至當(dāng)前時(shí)間的總秒數(shù)。它也被稱為 Unix 時(shí)間戳(Unix Timestamp),它在unix、c的世界里隨處可見(jiàn);常見(jiàn)形態(tài)是浮點(diǎn)數(shù),小數(shù)點(diǎn)后面是毫秒。兩個(gè)時(shí)間戳相減就是時(shí)間間隔(單位:秒)。
例:
import time time1 = time.time() time.sleep(15) time2 = time.time() print time2 - time1
其中,time.sleep()是休眠函數(shù),單位:秒。
二、當(dāng)前時(shí)間
>>> import datetime,time
>>> now = time.strftime("%Y-%m-%d %H:%M:%S")
>>> print now
2016-04-30 17:02:26
>>> now = datetime.datetime.now()
>>> print now
三、時(shí)間差
#1 昨天00:00到昨天23:59
>>> import datetime
>>> yestoday = datetime.datetime.now() - datetime.timedelta(days=1)
>>> t1 = "%s-00-00-00" % yestoday.strftime("%Y-%m-%d")
>>> t2 = "%s-23-59-59" % yestoday.strftime("%Y-%m-%d")
>>> print 't1', t1
t1 2016-04-29-00-00-00
>>> print 't2', t2
t2 2016-04-29-23-59-59
#2 現(xiàn)在往后10小時(shí)
>>> d1 = datetime.datetime.now() >>> d3 = d1 + datetime.timedelta(hours=10) >>> d3.ctime() 'Sun May 1 03:09:58 2
#3 這么一會(huì)的秒數(shù)、微妙數(shù)(注意是取秒、微妙部分,并不是等價(jià)轉(zhuǎn)換)
>>> import datetime >>> starttime = datetime.datetime.now() >>> endtime = datetime.datetime.now() >>> starttime = datetime.datetime.now() >>> endtime = datetime.datetime.now() >>> print endtime - starttime 0:00:07.390988 >>> print (endtime - starttime).seconds 7 >>> print (endtime - starttime).microseconds 390988
文件的時(shí)間戳
>>> import os >>> statinfo=os.stat(r"C:/1.txt") >>> statinfo (33206, 0L, 0, 0, 0, 0, 29L, 1201865413, 1201867904, 1201865413)
注:使用os.stat的返回值statinfo中的后三項(xiàng)是文件的st_atime (訪問(wèn)時(shí)間), st_mtime (修改時(shí)間), st_ctime(創(chuàng)建時(shí)間),例如,取得文件修改時(shí)間:
>>> statinfo.st_mtime 1201865413.8952832
注:這個(gè)時(shí)間是一個(gè)linux時(shí)間戳,可以轉(zhuǎn)換成易于理解的格式:
>>> import time >>> time.localtime(statinfo.st_ctime) (2008, 2, 1, 19, 30, 13, 4, 32, 0)
注:2008年2月1日的19時(shí)30分13秒(2008-2-1 19:30:13)
四、python中時(shí)間日期格式化符號(hào)
%y 兩位數(shù)的年份表示(00-99)
%Y 四位數(shù)的年份表示(000-9999)
%m 月份(01-12)
%d 月內(nèi)中的一天(0-31)
%H 24小時(shí)制小時(shí)數(shù)(0-23)
%I 12小時(shí)制小時(shí)數(shù)(01-12)
%M 分鐘數(shù)(00=59)
%S 秒(00-59)
%a 本地簡(jiǎn)化星期名稱
%A 本地完整星期名稱
%b 本地簡(jiǎn)化的月份名稱
%B 本地完整的月份名稱
%c 本地相應(yīng)的日期表示和時(shí)間表示
%j 年內(nèi)的一天(001-366)
%p 本地A.M.或P.M.的等價(jià)符
%U 一年中的星期數(shù)(00-53)星期天為星期的開(kāi)始
%w 星期(0-6),星期天為星期的開(kāi)始
%W 一年中的星期數(shù)(00-53)星期一為星期的開(kāi)始
%x 本地相應(yīng)的日期表示
%X 本地相應(yīng)的時(shí)間表示
%Z 當(dāng)前時(shí)區(qū)的名稱
%% %號(hào)本身
五、例子
#! coding:utf-8
''''' 日期相關(guān)的操作 '''
from datetime import datetime
from datetime import timedelta
import calendar
DATE_FMT = '%Y-%m-%d'
DATETIME_FMT = '%Y-%m-%d %H:%M:%S'
DATE_US_FMT = '%d/%m/%Y'
'''''
格式化常用的幾個(gè)參數(shù)
Y : 1999
y :99
m : mouth 02 12
M : minute 00-59
S : second
d : day
H : hour
'''
def dateToStr(date):
'''''把datetime類型的時(shí)間格式化自己想要的格式'''
return datetime.strftime(date, DATETIME_FMT)
def strToDate(strdate):
'''''把str變成日期用來(lái)做一些操作'''
return datetime.strptime(strdate, DATETIME_FMT)
def timeElement():
'''''獲取一個(gè)時(shí)間對(duì)象的各個(gè)元素'''
now = datetime.today()
print 'year: %s month: %s day: %s' %(now.year, now.month, now.day)
print 'hour: %s minute: %s second: %s' %(now.hour, now.minute, now.second)
print 'weekday: %s ' %(now.weekday()+1) #一周是從0開(kāi)始的
def timeAdd():
'''''
時(shí)間的加減,前一天后一天等操作
datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
參數(shù)可以是正數(shù)也可以是負(fù)數(shù)
得到的對(duì)象可以加也可以減 乘以數(shù)字和求絕對(duì)值
'''
atime = timedelta(days=-1)
now = datetime.strptime('2001-01-30 11:01:02', DATETIME_FMT)
print now + atime
print now - abs(atime)
print now - abs(atime)*31
def lastFirday():
today = datetime.today()
targetDay = calendar.FRIDAY
thisDay = today.weekday()
de = (thisDay - targetDay) % 7
res = today - timedelta(days=de)
print res
def test():
print dateToStr(datetime.today())
print strToDate('2013-01-31 12:00:01')
timeElement()
timeAdd()
lastFirday()
if __name__=='__main__':
test()
結(jié)果
Connected to pydev debugger (build 141.1899) 2016-05-18 10:40:26 2013-01-31 12:00:01 year: 2016 month: 5 day: 18 hour: 10 minute: 41 second: 13 weekday: 3 2001-01-29 11:01:02 2001-01-29 11:01:02 2000-12-30 11:01:02 2016-05-13 10:41:37.001000
PS:本站還提供了幾款關(guān)于Unix時(shí)間戳轉(zhuǎn)換及日期在線工具,非常實(shí)用,提供給大家參考:
Unix時(shí)間戳(timestamp)轉(zhuǎn)換工具:
http://tools.jb51.net/code/unixtime
在線日期/天數(shù)計(jì)算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi
在線萬(wàn)年歷日歷:
http://tools.jb51.net/bianmin/wannianli
在線陰歷/陽(yáng)歷轉(zhuǎn)換工具:
http://tools.jb51.net/bianmin/yinli2yangli
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python日期與時(shí)間操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
簡(jiǎn)單實(shí)現(xiàn)Python爬取網(wǎng)絡(luò)圖片
這篇文章主要教大家如何簡(jiǎn)單實(shí)現(xiàn)Python爬取網(wǎng)絡(luò)圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
利用Python將txt文件錄入Excel表格的全過(guò)程
Python具有基本的文本文件讀寫(xiě)功能,Python的標(biāo)準(zhǔn)庫(kù)提供有更豐富的讀寫(xiě)功能,下面這篇文章主要給大家介紹了關(guān)于如何利用Python將txt文件錄入Excel表格的相關(guān)資料,需要的朋友可以參考下2021-11-11
python實(shí)現(xiàn)圖片,視頻人臉識(shí)別(dlib版)
這篇文章主要介紹了python實(shí)現(xiàn)圖像,視頻人臉識(shí)別(dlib版)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-11-11
Python內(nèi)置函數(shù)map()的具體使用
Python中的map()函數(shù)是一個(gè)高效的內(nèi)置函數(shù),用于將指定函數(shù)應(yīng)用于序列的每個(gè)元素,通過(guò)接收一個(gè)函數(shù)和一個(gè)或多個(gè)序列,本文就來(lái)詳細(xì)的介紹一下如何使用,感興趣的可以了解一下2024-09-09
Python實(shí)現(xiàn)將目錄中TXT合并成一個(gè)大TXT文件的方法
這篇文章主要介紹了Python實(shí)現(xiàn)將目錄中TXT合并成一個(gè)大TXT文件的方法,涉及Python針對(duì)目錄下文本文件的遍歷、讀取及寫(xiě)入等技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07

