现在我使用
import datetime
print(datetime.datetime.now().strftime("%X"))
若要将当前时间显示为字符串,请执行以下操作。
问题是,我的计算机运行在Europe/Berlin
时区,这里没有计算+2到协调世界时的偏移量。它应该显示与我在这里找到的其他答案不同的21:22:26
,而不是19:22:26
,我不是通过调用
datetime.datetime(2014, 7, 10, 18, 44, 59, 193982, tzinfo=<UTC>)
但
datetime.datetime.now()
因此,我尝试(并失败)了以下几点:
>>> from pytz import timezone
>>> datetime.datetime.now().astimezone(timezone('Europe/Berlin'))
ValueError: astimezone() cannot be applied to a naive datetime
编辑:
回答
无法作为答案发布,因为此问题已标记为已关闭
我遇到这个问题的服务器已经不存在了。无论如何,这里有一些其他值得检查的东西:
发布于 2014-09-17 17:53:03
要获取本地时区中的当前时间作为原始datetime对象,请执行以下操作:
from datetime import datetime
naive_dt = datetime.now()
如果它没有返回预期的时间,则意味着您的计算机配置错误。你应该先修复它(它与Python无关)。
要以UTC格式获取当前时间作为原始datetime对象,请执行以下操作:
naive_utc_dt = datetime.utcnow()
要在Python 3.3+中以感知datetime对象的形式获取当前时间:
from datetime import datetime, timezone
utc_dt = datetime.now(timezone.utc) # UTC time
dt = utc_dt.astimezone() # local time
要从tz数据库中获取给定时区的当前时间:
import pytz
tz = pytz.timezone('Europe/Berlin')
berlin_now = datetime.now(tz)
它在DST转换期间工作。如果时区在过去具有不同的UTC偏移量,那么它就可以工作,即即使时区在不同的时间对应于多个tzinfo对象,它也可以工作。
https://stackoverflow.com/questions/25837452
复制相似问题