本文實例講述了Python常用時間操作。分享給大家供大家參考,具體如下:
我們先導入必須用到的一個module
>>> import time
設置一個時間的格式,下面會用到
>>>ISOTIMEFORMAT='%Y-%m-%d %X'
看一下當前的時間,和其他很多語言相似這是從epoch(1970 年 1 月 1 日 00:00:00)開始到當前的秒數。
>>> time.time()1180759620.859
上面的看不懂,換個格式來看看
>>> time.localtime()(2007, 6, 2, 12, 47, 7, 5, 153, 0)
localtime返回tuple格式的時間,有一個和它類似的函數叫gmtime(),2個函數的差別是時區,gmtime()返回的是0時區的值,localtime返回的是當前時區的值。
>>> time.strftime( ISOTIMEFORMAT, time.localtime() )'2007-06-02 12:54:29′
用上我們的時間格式定義了,使用strftime對時間做一個轉換,如果取現在的時間,time.localtime() 可以不用。
>>> time.strftime( ISOTIMEFORMAT, time.localtime( time.time() ) )'2007-06-02 12:54:31′>>> time.strftime( ISOTIMEFORMAT, time.gmtime( time.time() ) )'2007-06-02 04:55:02′
上面展示了gmtime和localtime的區別。
查看時區用
>>> time.timezone-28800
上面的值是一個秒值,是當前時區和0時區相差的描述,-28800=-8*3600,即為東八區。
帖幾個簡單的函數
def ISOString2Time( s ): ''' convert a ISO format time to second from:2006-04-12 16:46:40 to:23123123 把一個時間轉化為秒 ''' return time.strptime( s, ISOTIMEFORMAT )def Time2ISOString( s ): ''' convert second to a ISO format time from: 23123123 to: 2006-04-12 16:46:40 把給定的秒轉化為定義的格式 ''' return time.strftime( ISOTIMEFORMAT, time.localtime( float( s) ) )def dateplustime( d, t ): ''' d=2006-04-12 16:46:40 t=2小時 return 2006-04-12 18:46:40 計算一個日期相差多少秒的日期,time2sec是另外一個函數,可以處理,3天,13分鐘,10小時等字符串,回頭再來寫這個,需要結合正則表達式。 ''' return Time2ISOString( time.mktime( ISOString2Time( d ))+time2sec( t ) )def dateMinDate( d1, d2 ): ''' minus to iso format date,return seconds 計算2個時間相差多少秒 ''' d1=ISOString2Time( d1 ) d2=ISOString2Time( d2 ) return time.mktime( d1 )-time.mktime( d2 )
一、簡介
time模塊提供各種操作時間的函數
說明:一般有兩種表示時間的方式:
第一種是時間戳的方式(相對于1970.1.1 00:00:00以秒計算的偏移量),時間戳是惟一的
第二種以數組的形式表示即(struct_time),共有九個元素,分別表示,同一個時間戳的struct_time會因為時區不同而不同
新聞熱點
疑難解答