我正在嘗試獲取EDT時區中的當前時間。Python - 特定時區的日期時間
print datetime.time(datetime.now()).strftime("%H%M%S")
datetime.now([TZ])有一個可選的TZ說法,但它必須是類型datetime.tzinfo的......我還沒有本能夠找出如何定義一個tzinfo對象爲東時區...似乎它應該很簡單,但我不能導出一個額外的圖書館。
我正在嘗試獲取EDT時區中的當前時間。Python - 特定時區的日期時間
print datetime.time(datetime.now()).strftime("%H%M%S")
datetime.now([TZ])有一個可選的TZ說法,但它必須是類型datetime.tzinfo的......我還沒有本能夠找出如何定義一個tzinfo對象爲東時區...似乎它應該很簡單,但我不能導出一個額外的圖書館。
我對EDT時區並不十分反感,但這個例子應該可以滿足您的目的。
import datetime
datetime.datetime.now必須通過應該是datetime.tzinfo類型的時區信息。這是一個實現了一些所需功能的類。因爲這是一個例子,所以我在這裏沒有提供節電細節。
class EST(datetime.tzinfo):
def utcoffset(self, dt):
return datetime.timedelta(hours=-5)
def dst(self, dt):
return datetime.timedelta(0)
現在你可以使用它來獲取帶有時區的正確性信息:
print datetime.datetime.now(EST())
輸出:
2010-11-01 13:44:20.231259-05:00
感謝 - 令人沮喪的是你必須創建一個整體類來指定一個時區(vs只是傳遞一個簡單的變量) – wuntee 2010-11-01 18:58:32
@wuntee:那不是真的。這是爲了解釋。 adw的答案包含可用於傳遞tzinfo信息的庫 - pytz。事實上,這將是重用和dst等方面已由pytz模塊提供。 – pyfunc 2010-11-01 19:05:33