簡體   English   中英

Python date.today()不返回本地日期

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM