在寫python時,很多時候需要用的時間函式,如:記錄當前時間,以時間命名檔案,或是比較時間的先後等,這裡記錄一下關於常用時間模組的方法。
環境:ubuntu16.04
python3.5.2
用到兩個模組:time 和 datetime
時間戳 2023年1月1日之後的秒,即:time.time()
格式化的字串 2014-11-11 11:11, 即:time.strftime('%y-%m-%d')
結構化時間 元組包含了:年、日、星期等... time.struct_time 即:time.localtime()
時間戳可用於計算,結構化也可用於計算。
time模組:
time.clock()
這個方法資料說明是這樣的:
以浮點數計算的秒數返回當前的cpu時間。用來衡量不同程式的耗時,比time.time()更有用。這個需要注意,在不同的系統上含義不同。在unix系統上,它返回的是"程序時間",它是用秒表示的浮點數(時間戳)。而在windows中,第一次呼叫,返回的是程序執行的實際時間。而第二次之後的呼叫是自第一次呼叫以後到現在的執行時間。(實際上是以win32上queryperformancecounter()為基礎,它比毫秒表示更為精確)
我理解是,這個一般用來計算程式占用cpu的時間,在unix系統上,類似返回cpu的工時,完成操作花了多久,而在windows上可以用差值的方法同樣得出工時。
>> time.clock()time.time()3.282732
這個返回當前時間的時間戳(1970紀元後經過的浮點秒數)。
>> time.time()也可用前後差值來計算程式的時間。1515849662.0594246
time.mktime()
接受9個元素的元組,返回時間戳。
time.altzone
返回格林威治西部的夏令時地區的偏移秒數。如果該地區在格林威治東部會返回負值(如西歐,包括英國)。對夏令時啟用地區才能使用。
>> time.altzonetime.ctime()-28800
>> time.altzone / 3600
-8.0
這個函式接受秒數的引數,以1970紀元為節點,會返回乙個較完整的時間描述字串格式,如引數為空,則預設引數是time.time()。
>> time.ctime(1000)time.localtime()'thu jan 1 08:16:40 1970'
>> time.ctime()
'sat jan 13 21:24:00 2018'
這個函式接受乙個時間戳,返回格式化為本地時間,後面帶指定方法返回數值型別:
>> time.localtime()time.asctime()time.struct_time(tm_year=2018, tm_mon=1, tm_mday=13, tm_hour=21, tm_min=43, tm_sec=45, tm_wday=5, tm_yday=13, tm_isdst=0)
>> time.localtime().tm_yday
13
這個函式接受一組9個元素的元組引數,引數也可是time.localtime()的返回,返回的結果是可讀的時間描述字串, 如引數為空,預設返回當前的時間。
>> time.asctime()time.strftime()'sat jan 13 21:34:19 2018'
格式化輸出時間字串,需要引數:
%y 兩位數的年份表示(00-99)
%y 四位數的年份表示(000-9999)
%m 月份(01-12)
%d 月內中的一天(0-31)
%h 24小時制小時數(0-23)
%i 12小時制小時數(01-12)
%m 分鐘數(00=59)
%s 秒(00-59)
%a 本地簡化星期名稱
%a 本地完整星期名稱
%b 本地簡化的月份名稱
%b 本地完整的月份名稱
%c 本地相應的日期表示和時間表示
%j 年內的一天(001-366)
%p 本地a.m.或p.m.的等價符
%u 一年中的星期數(00-53)星期天為星期的開始
%w 星期(0-6),星期天為星期的開始
%w 一年中的星期數(00-53)星期一為星期的開始
%x 本地相應的日期表示
%x 本地相應的時間表示
%z 當前時區的名稱
%% %號本身
>> time.strftime("%y/%m/%d_%h:%m:%s")time.strptime()'2018/01/13_21:37:01'
>> time.strftime("%y%m%d%h%m%s")
'20180113213718'
匹配時間字串為表示時間的數值,需要兩個引數:
>> time.strptime('20180113213718',"%y%m%d%h%m%s")time.sleep()time.struct_time(tm_year=2018, tm_mon=1, tm_mday=13, tm_hour=21, tm_min=37, tm_sec=18, tm_wday=5, tm_yday=13, tm_isdst=-1)
接受浮點型或整型的值,可讓執行緒等待指定秒數的時間。
datetime函式:
暫時只用到了datetime.datetime.now() 和 datetime.datetime.strptime():
>> datetime.datetime.now()datetime.datetime(2018, 1, 13, 22, 4, 27, 857289)
>> datetime.datetime.strptime('20180113222027', '%y%m%d%h%m%s')
datetime.datetime(2018, 1, 13, 22, 20, 27)
>> f = datetime.datetime.strptime('20180113222027', '%y%m%d%h%m%s')
>> n = datetime.datetime.now()
>> f -n
datetime.timedelta(0, 795, 29355)
>> c = f -n
>> c.seconds
795>> c.days
0很明顯,相減的差值,第乙個元素是天,第二個是秒。
Python3 時間格式
coding utf 8 import time import datetime defget tentime 獲取精確到秒的時間戳 十位 return int time.time defget timesecond 獲取精確到毫秒的時間戳 十三位 millis int round time.tim...
python3 時間格式的轉換
使用的time 標準庫 世界上有兩種標準時間的格式 一種是utc 標準時區,另一種的夏令時的標準時區,中國使用的是utc 8 的乙個時間 就是北京時間 時間分為 三種格式 1.struct time格式 time.localtime 2.時間戳 time.time 3.格式化的時間格式 1.時間戳 ...
python3時間 Python3 時間處理
usr bin python3 import time 引入time模組 python3 日期和時間 當前時間戳 ticks time.time print 當前時間戳為 ticks 當前時間戳為 1522024006.313911 完全版本地時間 localtime time.localtime ...