概述在python中, date、time、datetime類提供了一系列處理日期、時(shí)間和時(shí)間間隔的函數(shù)。 在Python里我們大致可以把其實(shí)現(xiàn)日期時(shí)間類分為5個(gè): date 僅用于日期處理(年、月、日) time 僅用于時(shí)間處理(時(shí)、分、秒、毫秒) datetime 可以處理日期和時(shí)間的組合(年、月、日、時(shí)、分、秒、毫秒) timedelta 日期時(shí)間處理,可以用于時(shí)間運(yùn)算等 tzinfo 用于時(shí)區(qū)處理
下面我們一起看幾個(gè)實(shí)例來(lái)看看上述幾個(gè)類的應(yīng)用,在本文中不會(huì)列舉所有的應(yīng)用方法。 基礎(chǔ)實(shí)例直接上代碼,一起來(lái)看看日期和時(shí)間的一些基礎(chǔ)處理技巧: # -*- coding:utf-8 -*-
__author__ = '苦葉子'
# 導(dǎo)入日期和時(shí)間
from datetime import date
from datetime import time from datetime import datetime
if __name__ == "__main__": # 獲取下今天的的日期
today = date.today() print("今天是 %s" % today) # 把今天的日期年月日分開,重新格式化下一下
print("今天是 %s %s %s" % (today.day, today.month, today.year)) # 看下今天是星期幾
# 星期幾 序號(hào)
# Monday 0
# Tuesday 1
# Wednesday 2
# Thursday 3
# Friday 4
# Saturday 5
# Sunday 6
# weekday會(huì)獲取到對(duì)應(yīng)的序號(hào),請(qǐng)根據(jù)序號(hào)對(duì)上上述表,來(lái)看是星期幾
weekday_num = today.weekday() print("今天weekday是 %s" % weekday_num) # 輸出可讀性更好的星期幾
weekdays = ("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday") print("今天是 %s" % weekdays[weekday_num]) print("-" * 30) # 看看現(xiàn)在的時(shí)間
today_now = datetime.now() print("現(xiàn)在是 %s" % today_now) # 用time來(lái)構(gòu)造個(gè)時(shí)間出來(lái)
t = time(hour=12, minute=20, second=30, microsecond=200) print("我們自己造的時(shí)間是 %s" % t)
# 再造個(gè)日期時(shí)間出來(lái)試試
d = datetime(year=2008, month=8, day=8, hour=8, minute=8, second=8) print("我們自己造是日期時(shí)間 %s" % d) 格式化日期時(shí)間:strftime函數(shù)大家是不是在各種網(wǎng)站、系統(tǒng)上見過(guò)不同格式的日期時(shí)間顯示?那接下來(lái)我們也來(lái)做做日期時(shí)間的格式化。 我們需要用到strftime函數(shù),先看一下可用于格式化日期時(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)星期天為星期的開始 %w 星期(0-6),星期天為星期的開始 %W 一年中的星期數(shù)(00-53)星期一為星期的開始 %x 相應(yīng)的日期表示 %X 相應(yīng)的時(shí)間表示 %z 當(dāng)前時(shí)區(qū)的名稱 %% %號(hào)本身 下面看看怎么把strftime和上述格式化符號(hào)結(jié)合應(yīng)用: # -*- coding:utf-8 -*-
__author__ = '苦葉子'
import time
if __name__ == "__main__": # time.strftime(format[, t])
# 先看下當(dāng)前默認(rèn)格式化的時(shí)間
localtime = time.asctime(time.localtime()) print("當(dāng)前默認(rèn)日期時(shí)間格式: %s" % localtime) # 格式化為: 年-月-日 時(shí):分:秒 星期幾
print("24小時(shí)制全格式:", time.strftime("%Y-%m-%d %H:%M:%S %A", time.localtime())) print("12小時(shí)制縮寫格式:", time.strftime("%Y-%m-%d %I:%M:%S %a", time.localtime())) # 帶a.m. 或 p.m. 標(biāo)識(shí)時(shí)間格式 %p
print("帶a.m或p.m 24小時(shí)制全格式:", time.strftime("%Y-%m-%d %H:%M:%S %p %A", time.localtime())) # 把時(shí)區(qū)也帶上看看 %z
print("帶時(shí)區(qū)的全格式:", time.strftime("%Y-%m-%d %H:%M:%S %p %A %z", time.localtime())) # 格式亂排下試試
print("隨意排格式:", time.strftime("%A %Y-%d-%m %p %H:%M:%S %z", time.localtime())) 時(shí)間的格式化不需要太多的技巧,把上述的格式化符號(hào)熟練運(yùn)用就好,多練練就好了。不過(guò)關(guān)于日期時(shí)間的模塊所提供的功能,這里僅僅展示了最簡(jiǎn)單的,更強(qiáng)大的功能,強(qiáng)去查看datetime、time相關(guān)的官網(wǎng)文檔,以更深入掌握。 尤其是對(duì)datetime和time模塊的掌握很重要!??! 對(duì)于timedelta和tzinfo大家自行看官方資料學(xué)習(xí)。 分享軟件測(cè)試開源技術(shù)、經(jīng)驗(yàn)、方案的首發(fā)平臺(tái)
|