1. 程式人生 > >[Python3]日期和時間處理

[Python3]日期和時間處理

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]日期和時間處理