我经常旅行,但住在纽约市,无论我在哪里,都在努力展示纽约时间。我怎么用Python做到这一点?我有以下,这不起作用,给我错误:
`'module' object is not callable`
此外,我不确定下面的方法是否会在夏令时下正确更新:
import pytz
utc = pytz.utc
utc_dt = datetime(2002, 10, 27, 6, 0, 0, tzinfo=utc)
eastern = pytz.timezone('US/Eastern')
loc_dt = utc_dt.astimezone(eastern)
fmt = '%Y-%m-%d %H:%M:%S %Z%z'
loc_dt.strftime(fmt)
答案 0 :(得分:7)
而不是datetime
,请写datetime.datetime
:
import datetime
import pytz
utc = pytz.utc
utc_dt = datetime.datetime(2002, 10, 27, 6, 0, 0, tzinfo=utc)
eastern = pytz.timezone('US/Eastern')
loc_dt = utc_dt.astimezone(eastern)
fmt = '%Y-%m-%d %H:%M:%S %Z%z'
loc_dt.strftime(fmt)
那是因为模块datetime包含一个类datetime.datetime
。
答案 1 :(得分:5)
您可以按以下方式使用datetime
方法在特定时区获取当前时间的now()
个对象:
import datetime, pytz
nyc_datetime = datetime.datetime.now(pytz.timezone('US/Eastern'))
答案 2 :(得分:1)
我会这样做:
import datetime
import pytz
now = datetime.datetime.now(tz=pytz.timezone('US/Eastern'))
print("now time is: ", now)
current_hour = now.hour
current_minute = now.minute
current_second = now.second
current_weekday = now.weekday()
答案 3 :(得分:0)
这样编写导入文件更干净:
from datetime import datetime
import pytz
now = datetime.now(tz=pytz.timezone('US/Eastern'))
这允许在代码中进一步重复使用datetime,而不必每次都使用datetime.datetime。还可以避免不必要地导入整个datetime模块。
还要注意,根据IANA,“美国/东部”已过时。也许考虑“美国/纽约”