[英]Python date.today() doesn't return local date
我在EST並嘗試使用date.today()
,但它在第二天返回。 文檔說它應該是當地時間。 有誰知道如何讓它返回我的本地(EST)日期?
classmethod date.today()返回當前的本地日期。 這相當於date.fromtimestamp(time.time())。
https://docs.python.org/2/library/datetime.html#date-objects
更新:澄清一下,它大部分時間都有效,除非我在美國東部時間晚上10點左右嘗試。 我用time.strftime('%X %x %Z')
檢查了我的時區,它看起來像UTC。 鑒於這種情況,我如何得到今天的日期? 請注意,我希望在EST中獲取日期時保持系統UTC。
如果你不介意使用pytz
:
from datetime import datetime, date
from pytz import timezone
datetime.now(timezone('US/Eastern'))
請注意, python datetime模塊顯式地推薦了pytz
(但也包含一個“大部分時間都在”工作的示例):
pytz
標准庫沒有tzinfo實例,但是存在第三方庫,它將IANA時區數據庫(也稱為Olson數據庫)引入Python:pytz。
pytz包含最新信息,建議使用它。
要明確地將其轉換為date
:
date.fromtimestamp(datetime.now(timezone('US/Eastern')).timestamp())
或者,如果您使用的是python <3.3(因為datetime.timestamp
是在4年前發布的,所以早期版本可能沒有它):
from datetime import timezone as datetime_timezone
now = datetime.now(timezone('US/Eastern'))
ts = (now - datetime(1970, 1, 1, tzinfo=datetime_timezone.utc)).total_seconds()
date.fromtimestamp(ts)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.