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)

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

[Python] 原來字串格式映對 (String format mapping) 也可以這樣作

一個dictionary
d={"name": "Bill", "age": 55}

一個字串格式
s = "%(name)s is %(age)s"
其中name跟age為dictionary的key,注意不要加任何引號

組合
s%d
注意d前後不用括號

輸出為
> Bill is 55

2013年4月2日 星期二

[HTML5] 去除contentEditable的框線 (border)

HTML5中的contentEditable很好用,可以讓多數HTML元件變成可編輯元件,但預設的框線卻很礙眼。這時可以設定outline-width為0將框線去除,範例如下:


<div contenteditable="true" style="outline-width: 0;">
這可以編輯,也沒有框線喔! </div>