python時間模塊-time和datetime


時間模塊

python 中時間表示方法有:時間戳,即從1975年1月1日00:00:00到現在的秒數;格式化后的時間字符串;時間struct_time 元組。
struct_time元組中元素主要包括tm_year(年)、tm_mon(月)、tm_mday(日)、tm_hour(時)、tm_min(分)、tm_sec(秒)、tm_wday(weekday0 - 6(0表示周日))、tm_yday(一年中的第幾天1 - 366)、tm_isdst(是否是夏令時)

1. time

  • 常用函數

    • time.time() 返回當前時間戳
    >>> time.time()
    1465370844.096474

     

    • time.ctime() 返回這種格式的時間字符'Wed Jun 8 15:27:48 2016',顯示當前時間.同時也可以轉換時間戳
    >>> time.ctime()
    'Wed Jun  8 15:27:48 2016'
    
    >>> time.ctime(time.time()-86400)
    'Tue Jun  7 15:29:36 2016'

     

    • time.gmtime 將時間戳轉換成struct_time格式,此顯示的是格林威治0時區的時間
    >>> time.gmtime()
    time.struct_time(tm_year=2016, tm_mon=6, tm_mday=8, tm_hour=7, tm_min=34, tm_sec=28, tm_wday=2, tm_yday=160, tm_isdst=0)
    
    >>> time.gmtime(time.time() - 86400)
    time.struct_time(tm_year=2016, tm_mon=6, tm_mday=7, tm_hour=7, tm_min=34, tm_sec=41, tm_wday=1, tm_yday=159, tm_isdst=0)

     

    • time.localtime 將當前系統時間戳轉化為struct_time格式
      >>> time.localtime()
      time.struct_time(tm_year=2016, tm_mon=6, tm_mday=8, tm_hour=15, tm_min=35, tm_sec=33, tm_wday=2, tm_yday=160, tm_isdst=0)
      
      >>> time.localtime(time.time() - 86400)
      time.struct_time(tm_year=2016, tm_mon=6, tm_mday=7, tm_hour=15, tm_min=37, tm_sec=10, tm_wday=1, tm_yday=159, tm_isdst=0)

       

    • time.mktime 將struct_time格式轉回成時間戳
    >>> now = time.localtime()
    >>> now
    time.struct_time(tm_year=2016, tm_mon=6, tm_mday=8, tm_hour=15, tm_min=38, tm_sec=28, tm_wday=2, tm_yday=160, tm_isdst=0)
    >>> time.mktime(now)
    1465371508.0

     

    • time.strftime 將struct_time格式轉成指定的字符串格式
    >>> now = time.localtime()
    >>> now
    time.struct_time(tm_year=2016, tm_mon=6, tm_mday=8, tm_hour=15, tm_min=38, tm_sec=28, tm_wday=2, tm_yday=160, tm_isdst=0)
    >>> last = time.localtime(time.time() - 86400)
    >>> last
    time.struct_time(tm_year=2016, tm_mon=6, tm_mday=7, tm_hour=15, tm_min=40, tm_sec=23, tm_wday=1, tm_yday=159, tm_isdst=0)
    >>> time.strftime("%Y-%m-%d %H:%M:%S",last)
    '2016-06-07 15:40:23'
    >>> time.strftime("%Y-%m-%d %H:%M:%S",now)
    '2016-06-08 15:38:28'

     

    • time.strptime 將自定義時間格式的字符串轉換為struct_time格式
    >>> time.strptime("2016-06-08","%Y-%m-%d")
    time.struct_time(tm_year=2016, tm_mon=6, tm_mday=8, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=160, tm_isdst=-1)
    >>> time.strptime("2016-06-08 15:50:44","%Y-%m-%d %H:%M:%S")
    time.struct_time(tm_year=2016, tm_mon=6, tm_mday=8, tm_hour=15, tm_min=50, tm_sec=44, tm_wday=2, tm_yday=160, tm_isdst=-1)

     

    • time.sleep 暫停時間,類似於shell的sleep()
  • 其他

    • 時間格式:
    格式 說明
    %a 顯示簡化星期名稱
    %A 顯示完整星期名稱
    %b 顯示簡化月份名稱
    %B 顯示完整月份名稱
    %c 本地相應的日期和時間表示
    %d 顯示當月第幾天
    %H 按24小時制顯示小時
    %I 按12小時制顯示小時
    %j 顯示當年第幾天
    %m 顯示月份
    %M 顯示分鍾數)
    %p 本地am或者pm的相應符
    %S 顯示秒數)
    %U 一年中的星期數
    %w 顯示在星期中的第幾天,默認從0開始表示周一
    %W 和%U基本相同
    %x 本地相應日期
    %X 本地相應時間
    %y 去掉世紀的年份(00 - 99)
    %Y 完整的年份
    %Z 時區的名字(如果不存在為空字符)
    %% ‘%’字符
    • 時間函數之間轉換關系

2. datetime

datime是time的升級版,可以對date(日期)、time(時間)、datetime(日期時間)等三種單獨管理。主要是由下面四個類組成

  • datetime.datetime常用函數(datetime.date datetime.time通用)
#datetime.datetime.today() 默認返回當前日期和時間的對象,也可以自定義日期和時間

    >>> today = datetime.datetime.today()
    >>> print(today)
    2016-06-08 16:34:08.163371
    >>> last = datetime.datetime(2016,5,8,11,23,55)  #注意此處表示日期只能是實際月份,不能帶0
    >>> print(last)
    2016-05-08 11:23:55
    
    >>>last = datetime.datetime(2016,05,08,11,23,55)
  File "<stdin>", line 1
    last = datetime.datetime(2016,05,08,11,23,55)
                                   ^
SyntaxError: invalid token

#datetime.datetime.now() 返回當前時間
>>> datetime.datetime.now()
datetime.datetime(2016, 6, 8, 16, 44, 29, 694398)

    
# datetime.strftime(format)  #自定義格式化時間
>>> today.strftime("%I:%M:%S %p %d/%m/%Y")
 '04:34:08 PM 08/06/2016'

# datetime.datetime.timple() 將時間轉換為struct_time 格式
>>>today.timetuple() time.struct_time(tm_year=2016, tm_mon=6, tm_mday=8, tm_hour=16, tm_min=34, tm_sec=8, tm_wday=2, tm_yday=160, tm_isdst=-1) #datetime.replace()返回一個替換后的date對象 >>>last = today.replace(1949,10,1) >>> print(last) 1949-10-01 16:34:08.163371 >>> last = today.replace(year=1919,month=3,day=2) >>> print(last) 1919-03-02 16:34:08.163371 # datetime.datetime.strptime 將字符串轉換為日志格式對象 >>> a = "2016-06-08 17:18:19" >>> b = datetime.datetime.strptime(a,"%Y-%m-%d %H:%M:%S") >>> print(a) 2016-06-08 17:18:19 >>> print(b) 2016-06-08 17:18:19 >>> print(type(a)) <class 'str'> >>> print(type(b)) <class 'datetime.datetime'>

 

  • datetime.timedelta 時間運算

可用參數:days seconds microseconds milliseconds minutes hours weeks

today = datetime.datetime.now()
>>> print(today)
2016-06-08 16:51:31.698122
>>> yesterday = today - datetime.timedelta(days=1)
>>> print(yesterday)
2016-06-07 16:51:31.698122
>>> last_hour = today - datetime.timedelta(hours=1)
>>> print(last_hour)
2016-06-08 15:51:31.698122

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM