[Python3]日期和時間處理
阿新 • • 發佈:2017-09-10
num import time模塊 now() sda 年份 -s 好的 等價
概述
在python中, date、time、datetime類提供了一系列處理日期、時間和時間間隔的函數。
在Python裏我們大致可以把其實現日期時間類分為5個:
-
date
僅用於日期處理(年、月、日) -
time
僅用於時間處理(時、分、秒、毫秒) -
datetime
可以處理日期和時間的組合(年、月、日、時、分、秒、毫秒) -
timedelta
日期時間處理,可以用於時間運算等 -
tzinfo
用於時區處理
下面我們一起看幾個實例來看看上述幾個類的應用,在本文中不會列舉所有的應用方法。
基礎實例
直接上代碼,一起來看看日期和時間的一些基礎處理技巧:
# -*- coding:utf-8 -*- __author__ = ‘谷白‘ # 導入日期和時間 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)) # 看下今天是星期幾 # 星期幾 序號 # Monday 0 # Tuesday 1 # Wednesday 2 # Thursday 3 # Friday 4 # Saturday 5 # Sunday 6 # weekday會獲取到對應的序號,請根據序號對上上述表,來看是星期幾 weekday_num = today.weekday()print("今天weekday是 %s" % weekday_num) # 輸出可讀性更好的星期幾 weekdays = ("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday") print("今天是 %s" % weekdays[weekday_num]) print("-" * 30) # 看看現在的時間 today_now = datetime.now() print("現在是 %s" % today_now) # 用time來構造個時間出來 t = time(hour=12, minute=20, second=30, microsecond=200) print("我們自己造的時間是 %s" % t) # 再造個日期時間出來試試 d = datetime(year=2008, month=8, day=8, hour=8, minute=8, second=8) print("我們自己造是日期時間 %s" % d)
格式化日期時間:strftime函數
大家是不是在各種網站、系統上見過不同格式的日期時間顯示?那接下來我們也來做做日期時間的格式化。
我們需要用到strftime函數,先看一下可用於格式化日期時間的符號:
%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 當前時區的名稱
%% %號本身
下面看看怎麽把strftime和上述格式化符號結合應用:
# -*- coding:utf-8 -*- __author__ = ‘谷白‘ import time if __name__ == "__main__": # time.strftime(format[, t]) # 先看下當前默認格式化的時間 localtime = time.asctime(time.localtime()) print("當前默認日期時間格式: %s" % localtime) # 格式化為: 年-月-日 時:分:秒 星期幾 print("24小時制全格式:", time.strftime("%Y-%m-%d %H:%M:%S %A", time.localtime())) print("12小時制縮寫格式:", time.strftime("%Y-%m-%d %I:%M:%S %a", time.localtime())) # 帶a.m. 或 p.m. 標識時間格式 %p print("帶a.m或p.m 24小時制全格式:", time.strftime("%Y-%m-%d %H:%M:%S %p %A", time.localtime())) # 把時區也帶上看看 %z print("帶時區的全格式:", 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()))
時間的格式化不需要太多的技巧,把上述的格式化符號熟練運用就好,多練練就好了。不過關於日期時間的模塊所提供的功能,這裏僅僅展示了最簡單的,更強大的功能,強去查看datetime、time相關的官網文檔,以更深入掌握。
尤其是對datetime和time模塊的掌握很重要!!!
對於timedelta和tzinfo大家自行看官方資料學習。
[Python3]日期和時間處理