python模塊--時間模塊
一、python中時間介紹:
python中時間的表示形式有兩種:
1、時間戳表示法,即以整型或浮點型表示的是一個以秒爲單位的時間間隔。這個時間的基礎值是從1970年的1月1號零點開始算起。
2、元組格式表示法,即一種Python的數據結構表示。這個元組有9個整型內容。分別表示不同的時間含義。
二、datetime模塊
2.1 datetime模塊的所有函數
In [2]: dir(datetime) Out[2]: ['MAXYEAR', 'MINYEAR', '__doc__', '__file__', '__name__', '__package__', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'tzinfo'] In [3]:
2.2 datetime模塊函數詳解
datetime.datetime.now() 獲取當前系統時間
In [9]: print datetime.datetime.now() 2016-11-29 12:27:55.391272 #datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') #一般用於數據庫跟時間有關字段的賦值 #In [29]: print datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') 2016-11-29 13:26:22
datetime.date.today() 獲取今天日期
In [13]: print datetime.date.today() 2016-11-29
datetime.timedelta(days=x) 給定兩個時間差值
In [16]: help(datetime.timedelta) class timedelta(__builtin__.object) | Difference between two datetime values. | | Methods defined here: | | __abs__(...) | x.__abs__() <==> abs(x) | | __add__(...) | x.__add__(y) <==> x+y | | __div__(...) | x.__div__(y) <==> x/y | | __eq__(...) | x.__eq__(y) <==> x==y | | __floordiv__(...) | x.__floordiv__(y) <==> x//y | | __ge__(...) | x.__ge__(y) <==> x>=y | | __getattribute__(...) | x.__getattribute__('name') <==> x.name ##小李子 In [14]: print datetime.timedelta(days=1) 1 day, 0:00:00
datetime.datetime.strptime() 將字符串格式轉換成時間
##注意這個函數字符串中連接符只能是'-',其他則會報錯 In [26]: print datetime.datetime.strptime("2016-12-20",'%Y-%m-%d') 2016-12-20 00:00:00 In [25]: print datetime.datetime.strptime("2016 12 20",'%Y-%m-%d') --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-25-aac02a333bd5> in <module>() ----> 1 print datetime.datetime.strptime("2016 12 20",'%Y-%m-%d') /usr/local/python2.7/lib/python2.7/_strptime.pyc in _strptime(data_string, format) 323 if not found: 324 raise ValueError("time data %r does not match format %r" % --> 325 (data_string, format)) 326 if len(data_string) != found.end(): 327 raise ValueError("unconverted data remains: %s" % ValueError: time data '2016 12 20' does not match format '%Y-%m-%d' In [27]: import time In [28]: time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) Out[28]: '2016-11-29 13:18:21'
三、time模塊
3.1 time模塊的所有函數
In [3]: dir(time) Out[3]: ['__doc__', '__file__', '__name__', '__package__', 'accept2dyear', 'altzone', 'asctime', 'clock', 'ctime', 'daylight', 'gmtime', 'localtime', 'mktime', 'sleep', 'strftime', 'strptime', 'struct_time', 'time', 'timezone', 'tzname', 'tzset']
3.2 time模塊具體函數講解
time.time() -- 返回當前時間戳,浮點數形式。不接受參數
In [30]: time.time() Out[30]: 1480398573.196829
time.sleep() -- 延遲一個時間段,接受整型、浮點型。
In [10]: time.sleep(3)#執行完成後睡眠3秒
time.localtime() -- 將時間戳轉換爲本地時間元組格式。接受一個浮點型時間戳參數,其默認值爲當前時間戳。
In [11]: time.localtime() Out[11]: time.struct_time(tm_year=2016, tm_mon=12, tm_mday=10, tm_hour=11, tm_min=49, tm_sec=26, tm_wday=5, tm_yday=345, tm_isdst=0) In [13]: time.localtime(1481341446.412076) Out[13]: time.struct_time(tm_year=2016, tm_mon=12, tm_mday=10, tm_hour=11, tm_min=44, tm_sec=6, tm_wday=5, tm_yday=345, tm_isdst=0)
time.asctime() -- 將時間元組格式轉換爲字符串形式。接受一個時間元組,其默認值爲localtime()返回值
In [14]: time.asctime() Out[14]: 'Sat Dec 10 11:51:26 2016' In [23]: time.asctime((2016,12,10,11,52,47,5,345,0)) Out[23]: 'Sat Dec 10 11:52:47 2016'
time.strftime() -- 將時間元組以指定的格式轉換爲字符串形式。接受字符串格式化串、時間元組。時間元組爲可選,默認爲localtime()
In [25]: time.strftime("%Y %H:%M:%S") Out[25]: '2016 11:59:55'
strptime() -- 將指定格式的時間字符串解析爲時間元組,strftime()的逆向過程。接受字符串,時間格式2個參數,都是必選。
In [28]: time.strptime('Sat Dec 10 12:00:59 2016') Out[28]: time.struct_time(tm_year=2016, tm_mon=12, tm_mday=10, tm_hour=12, tm_min=0, tm_sec=59, tm_wday=5, tm_yday=345, tm_isdst=-1)