時間的表示形式:html
以整型或浮點型表示時間的一個以秒爲單位的時間間隔。這個時間間隔的基礎值是從1970年1月1日開始算起python
time.time() | 當前時間戳(秒數) UNIX和Windows只支持到2038年。 |
---|---|
time.localtime() | 接收時間輟(1970紀元後通過的浮點秒數)並返回當地時間下的時間元組 (0是週一) |
time.strftime("%Y-%m-%d %H:%M:%S"[,time.localtime()]) | 格式化成2016-03-20 11:45:39形式 第二個參數無關緊要 |
time.asctime() | 返回格式化後的英文文本的時間 |
time.mktime(tupletime) | 接受時間元組並返回時間輟 |
time.sleep(secs) | 推遲調用線程的運行,secs指秒數。 |
time.clock() | 用以浮點數計算的秒數返回當前的CPU時間。用來衡量不一樣程序的耗時,比time.time()更有用。 |
time.strptime(「2013-10-10 23:40:00」, "%Y-%m-%d %H:%M:%S") | 將其轉換爲時間元組 |
import time t = (2016, 2, 17, 17, 3, 38, 1, 48, 0) secs = time.mktime( t ) print ("time.mktime(t) : %f" % secs)#time.mktime(t) : 1455699818.000000 time.strptime(「2013-10-10 23:40:00」, "%Y-%m-%d %H:%M:%S") time = time.mktime(time.strptime("2013-10-10 23:40:00", "%Y-%m-%d %H:%M:%S")) print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time)))
import time def procedure(): for i in range(10000): pass # time.clock t0 = time.clock() procedure() print (time.clock() - t0) # time.time t0 = time.time() procedure() print (time.time() - t0)
%Y | 4位的年 | %y | 2位的年 |
---|---|---|---|
%m | 月份(01-12) | %d | 月內中的一天(0-31) |
%H | 24小時制小時數(0-23) | %I | 12小時制小時數(01-12) |
%M | 分鐘數(00=59) | %S | 秒(00-59) |
%a | 本地簡化星期名稱 英文文本 簡化 | %A | c本地簡化星期名稱 英文文本 完整 |
%j | 年內的一天(001-366) | %w | 星期(0-6),星期天爲星期的開始 (0是週一) |
%x | 本地相應的日期表示 (08/02/17) | %X | 本地相應的時間表示 23:48:34 |
例子:計算一我的活了多久函數
calendar.isleap(year)
是閏年返回 True,不然爲 false。spa
import calendar print(calendar.isleap(2000)) True print(calendar.isleap(1900)) False
calendar.leapdays(y1,y2)
返回在Y1,Y2兩年之間的閏年總數。線程
calendar.month(year,month,w=2,l=1)
返回一個多行字符串格式的year年month月日曆,兩行標題,一週一行。每日寬度間隔爲w字符。每行的長度爲7* w+6。l是每星期的行數。code
import calendar cal = calendar.month(2016, 1) print ("如下輸出2016年1月份的日曆:") print (cal) 例子:Python 生成日曆 # 引入日曆模塊 import calendar # 輸入指定年月 yy = int(input("輸入年份: ")) mm = int(input("輸入月份: ")) # 顯示日曆 print(calendar.month(yy,mm))
datetime比time高級了很多,能夠理解爲datetime基於time進行了封裝,提供了各位使用的函數,datetime模塊的接口更直觀,更容易調用htm
from datetime import datetime 本地時間 datetime.now() #2017-08-03 00:13:00.690975 utc時間 datetime.utcnow() #獲取指定時間 d2 = datetime.datetime(1999, 10, 1, 10, 28, 25, 123456) #年月日 時分秒 微妙數 1999-10-01 10:28:25.000001 #沒有微妙數 省略 d2 = datetime.datetime(1999, 10, 1, 10, 28, 25) #1999-10-01 10:28:25
把一個datetime
類型轉換爲timestamp['taɪmstæmp]只須要簡單調用timestamp()
方法:對象
>>> from datetime import datetime >>> dt = datetime(2015, 4, 19, 12, 20) # 用指定日期時間建立datetime >>> dt.timestamp() # 把datetime轉換爲timestamp datetime.now().timestamp() 1429417200.0
注意Python的timestamp是一個浮點數。若是有小數位,小數位表示毫秒數。接口
要把timestamp轉換爲datetime
,使用datetime
提供的fromtimestamp()
方法:文檔
>>> from datetime import datetime >>> t = 1429417200.0 >>> print(datetime.fromtimestamp(t)) 2015-04-19 12:20:00
注意到timestamp是一個浮點數,它沒有時區的概念,而datetime是有時區的。上述轉換是在timestamp和本地時間作轉換。
>>> from datetime import datetime >>> t = 1429417200.0 >>> print(datetime.fromtimestamp(t)) # 本地時間 2015-04-19 12:20:00 >>> print(datetime.utcfromtimestamp(t)) # UTC時間 2015-04-19 04:20:00
不少時候,用戶輸入的日期和時間是字符串,要處理日期和時間,首先必須把str轉換爲datetime。轉換方法是經過datetime.strptime()
實現,須要一個日期和時間的格式化字符串:
>>> from datetime import datetime >>> cday = datetime.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S') >>> print(cday) 2015-06-01 18:19:59
字符串'%Y-%m-%d %H:%M:%S'
規定了日期和時間部分的格式。詳細的說明請參考Python文檔。
注意轉換後的datetime是沒有時區信息的。
若是已經有了datetime對象,要把它格式化爲字符串顯示給用戶,就須要轉換爲str,轉換方法是經過strftime()
實現的,一樣須要一個日期和時間的格式化字符串:
>>> from datetime import datetime >>> now = datetime.now() >>> print(now.strftime('%a, %b %d %H:%M')) Mon, May 05 16:28
# 引入 datetime 模塊 import datetime def getYesterday(): today=datetime.date.today() oneday=datetime.timedelta(days=1) yesterday=today-oneday return yesterday # 輸出 print(getYesterday())
當前日期時間
import datetime
print datetime.datetime.now()
# 2018-05-08 16:53:30.101000
格式化時間
import datetime
print datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
# 2018-05-08 16:54
多加一天
import datetime
print (datetime.datetime.now()+datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S")
# 2018-05-09 16:56:07
減一天
import datetimeprint (datetime.datetime.now()+datetime.timedelta(days=-1)).strftime("%Y-%m-%d %H:%M:%S")# 2018-05-07 16:56:59能夠把days改成hours minutes,就能夠提早XX小時/分鐘了。