luc*_*ald 57 python time timezone
现在我用
import datetime
print(datetime.datetime.now().strftime("%X"))
Run Code Online (Sandbox Code Playgroud)
将当前时间显示为字符串.
问题是,我的计算机在Europe/Berlin
时区中运行,此处不计算+2到UTC的偏移量.而不是19:22:26
它应该显示21:22:26
与我在这里找到的其他答案不同,我不通过调用存储它
datetime.datetime(2014, 7, 10, 18, 44, 59, 193982, tzinfo=<UTC>)
Run Code Online (Sandbox Code Playgroud)
但
datetime.datetime.now()
Run Code Online (Sandbox Code Playgroud)
所以我尝试了(并且失败了)以下内容:
>>> from pytz import timezone
>>> datetime.datetime.now().astimezone(timezone('Europe/Berlin'))
ValueError: astimezone() cannot be applied to a naive datetime
Run Code Online (Sandbox Code Playgroud)
无法发布答案,因为此问题已标记为已关闭
我遇到此问题的服务器不再存在.无论如何,这里有一些值得检查的事情:
jfs*_*jfs 109
要将本地时区中的当前时间作为天真的日期时间对象获取:
from datetime import datetime
naive_dt = datetime.now()
Run Code Online (Sandbox Code Playgroud)
如果它没有返回预期的时间,则表示您的计算机配置错误.你应该先修复它(它与Python无关).
以UTC为天然日期时间对象获取当前时间:
naive_utc_dt = datetime.utcnow()
Run Code Online (Sandbox Code Playgroud)
要在Python 3.3+中将当前时间作为有意识的日期时间对象获取:
from datetime import datetime, timezone
utc_dt = datetime.now(timezone.utc) # UTC time
dt = utc_dt.astimezone() # local time
Run Code Online (Sandbox Code Playgroud)
要从tz数据库获取给定时区的当前时间:
import pytz
tz = pytz.timezone('Europe/Berlin')
berlin_now = datetime.now(tz)
Run Code Online (Sandbox Code Playgroud)
它在DST过渡期间有效.如果时区过去具有不同的UTC偏移,即使时区在不同时间对应于多个tzinfo对象,它也可以工作.
归档时间: |
|
查看次数: |
65725 次 |
最近记录: |