首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python获取正确时区的当前时间

Python获取正确时区的当前时间
EN

Stack Overflow用户
提问于 2014-09-15 04:00:25
回答 1查看 132.4K关注 0票数 102

现在我使用

代码语言:javascript
复制
import datetime
print(datetime.datetime.now().strftime("%X"))

若要将当前时间显示为字符串,请执行以下操作。

问题是,我的计算机运行在Europe/Berlin时区,这里没有计算+2到协调世界时的偏移量。它应该显示与我在这里找到的其他答案不同的21:22:26,而不是19:22:26,我不是通过调用

代码语言:javascript
复制
datetime.datetime(2014, 7, 10, 18, 44, 59, 193982, tzinfo=<UTC>)

代码语言:javascript
复制
datetime.datetime.now()

因此,我尝试(并失败)了以下几点:

代码语言:javascript
复制
>>> from pytz import timezone
>>> datetime.datetime.now().astimezone(timezone('Europe/Berlin'))
 ValueError: astimezone() cannot be applied to a naive datetime

编辑:

回答

无法作为答案发布,因为此问题已标记为已关闭

我遇到这个问题的服务器已经不存在了。无论如何,这里有一些其他值得检查的东西:

  • 是正确设置的服务器/系统的时区-
    • 虚拟机或坞站容器可能与主机不同步,这值得checking.

  • 那台计算机上的时间正确吗?更改时区后不会出现+2小时?
EN

回答 1

Stack Overflow用户

发布于 2014-09-17 17:53:03

要获取本地时区中的当前时间作为原始datetime对象,请执行以下操作:

代码语言:javascript
复制
from datetime import datetime
naive_dt = datetime.now()

如果它没有返回预期的时间,则意味着您的计算机配置错误。你应该先修复它(它与Python无关)。

要以UTC格式获取当前时间作为原始datetime对象,请执行以下操作:

代码语言:javascript
复制
naive_utc_dt = datetime.utcnow()

要在Python 3.3+中以感知datetime对象的形式获取当前时间:

代码语言:javascript
复制
from datetime import datetime, timezone

utc_dt = datetime.now(timezone.utc) # UTC time
dt = utc_dt.astimezone() # local time

要从tz数据库中获取给定时区的当前时间:

代码语言:javascript
复制
import pytz

tz = pytz.timezone('Europe/Berlin')
berlin_now = datetime.now(tz)

它在DST转换期间工作。如果时区在过去具有不同的UTC偏移量,那么它就可以工作,即即使时区在不同的时间对应于多个tzinfo对象,它也可以工作。

票数 194
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25837452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档