2013年4月5日 星期五

[Python] 時間物件及時間字串的轉換

因為時間表示法的不同,所以不同的時間字串要作比較時,就需要轉換成datetime物件,先介紹如何將datetime物件轉換為字串的方法。雖然有很多方法可以將datetime轉化為字串,但以下是我最喜歡用的方法。

from datetime import datetime

datetime.now().strftime("%Y-%m-%d %H-%M-%S")
> '2013-04-05 13-53-20'

第一,這個方法可以去除掉微秒(microsecond),如果直接用str(datetime.now()),秒後面會有一個很長的數字,對我而言不太機會用到。

第二,雖然可以用datetime.now.hour等屬性組合出想要的字串格式,但不可諱言以上的方法要簡潔的多,至於那些%Y %m等等代表甚麼,可以參考這裡

另外,格式可以儲存成常數參數,便於轉換,如下例:

DATETIME_FORMAT = "%Y-%m-%d %H-%M-%S"
datetime.now().strftime(DATETIME_FORMAT)

當有其他時間字串需要轉換成datetime物件時,使用strptime

s = '2013-04-03 13-53-20'
datetime.strptime(s, DATETIME_FORMAT)
> datetime.datetime(2013, 4, 3, 13, 53, 20)

這樣就可以比較或運算不同的時間字串格式了

沒有留言: