python 中的時間模塊

一、time模塊

內置的 time 模塊讓 Python程序能讀取系統時鐘的當前時間。在 time 模塊中, time.time()和 time.sleep()函數是最有用的模塊。python

time.time()

Unix 紀元是編程中常常參考的時間: 1970 年 1 月 1 日 0 點,即協調世界時( UTC)。 time.time()函數返回自那一刻以來的秒數,是一個浮點值(回想一下,浮點值只是一個帶小數點的數)。這個數字稱爲 UNIX 紀元時間戳。編程

time.sleep()函數

若是須要讓程序暫停一下,就調用 time.sleep()函數,並傳入但願程序暫停的秒數。函數

浮點數的取整 round()

Python 內置的 round()函數將它們縮短,該函數按照指定的精度四捨五入到一個浮點數。只要傳入要舍入的數字,再加上可選的第二個參數,指明須要傳入到小數點後多少位。若是省略第二個參數, round()將數字四捨五入到最接近的整數。
 spa

二、datetime模塊

以更方便的格式顯示日期,或對日期進行算術運算(例如,搞清楚 205 天前是什麼日期,或 123天后是什麼日期),就應該使用 datetime 模塊。code

datetime.datetime.now()

返回一個 datetime 對象,表示當前的日期和時間,根據你的計算機的時鐘。這個對象包含當前時刻的年、月、日、時、分、秒和微秒。也能夠利用 datetime.datetime()函數,向它傳入表明年、月、日、時、分、秒的整數,獲得特定時刻的 datetime 對象。這些整數將保存在 datetime 對象的 year、month、 day、 hour、 minute 和 second屬性中。對象

 datetime.datetime.fromtimestamp()

Unix 紀元時間戳轉換爲 datetime
對象。 datetime 對象的日期和時間將根據本地時區轉換。字符串

timedelta 數據類型

datetime 模塊還提供了 timedelta 數據類型,它表示一段時間,而不是一個時刻。要建立 timedelta 對象,就用 datetime.timedelta()函數。 datetime.timedelta()函數接受關鍵字參數 weeks、 days、 hours、 minutes、 seconds、 milliseconds 和 microseconds。沒有 month 和 year 關鍵字參數,由於「月」和「年」是可變的時間,依賴於特定月份或年份。 timedelta 對象擁有的總時間以天、秒、微秒來表示。這些數字分別保存在 days、 seconds 和 microseconds 屬性中。class

delta = datetime.timedelta(days=11, hours=10, minutes=9, seconds=8)
delta.days, delta.seconds, delta.microseconds
#(11, 36548, 0)
delta.total_seconds()
#986948.0
str(delta)
#'11 days, 10:09:08'

算術運算符能夠用於對 datetime 值進行日期運算。例如,要計算今天以後 1000天的日期,在交互式環境下:date

>>> dt = datetime.datetime.now()
>>> dt
datetime.datetime(2015, 2, 27, 18, 38, 50, 636181)
>>> thousandDays = datetime.timedelta(days=1000)
>>> dt + thousandDays
datetime.datetime(2017, 11, 23, 18, 38, 50, 636181)

datetime對象轉換爲字符串

python中時間日期格式化符號:數據類型

  • %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 當前時區的名稱
  • %% %號自己
oct21st = datetime.datetime(2015, 10, 21, 16, 29, 0)
print oct21st.strftime('%Y/%m/%d %H:%M:%S')
print oct21st.strftime('%I:%M %p')
print oct21st.strftime("%B of '%y")

#輸出
#2015/10/21 16:29:00
#04:29 PM
#October of '15

將字符串轉換成 datetime 對象

若是有一個字符串的日期信息,如'2015/10/21 16:29:00'或'October 21, 2015',須要將它轉換爲 datetime 對象,就用 datetime.datetime.strptime()函數。 strptime()函數與strftime()方法相反。定製的格式字符串使用相同的指令,像 strftime()同樣。必須將格式字符串傳入 strptime(),這樣它就知道如何解析和理解日期字符串( strptime()函數名中 p 表示解析, parse)。

>>>datetime.datetime.strptime('October 21, 2015', '%B %d, %Y')
#datetime.datetime(2015, 10, 21, 0, 0)
>>> datetime.datetime.strptime('2015/10/21 16:29:00', '%Y/%m/%d %H:%M:%S')
#datetime.datetime(2015, 10, 21, 16, 29)
>>> datetime.datetime.strptime("October of '15", "%B of '%y")
#datetime.datetime(2015, 10, 1, 0, 0)
相關文章
相關標籤/搜索