编辑:我想在我的国家UTC(西班牙)转换UTC时间.我使用模块pytz进行转换,但我得到的结果是UTC-1而不是UTC + 1.这是我的代码:
import datetime
import pytz
madrid = pytz.timezone("Europe/Madrid")
UTC_time = datetime.datetime.strptime("2019-03-01 14:45","%Y-%m-%d %H:%M")
madrid_dt = madrid.localize(UTC_time, is_dst=None)
MadridTime = madrid_dt.astimezone(pytz.utc).strftime ("%Y-%m-%d %H:%M")
Run Code Online (Sandbox Code Playgroud)
这是输出:
UTC_Time: 2019-03-01 14:45:00
MadridTime: 2019-03-01 13:45
Run Code Online (Sandbox Code Playgroud)
我需要马德里时间以15:45而不是13:45返回.我究竟做错了什么?
让我们更清楚地了解一下这里的内容:
\n\nmadrid = pytz.timezone('Europe/Madrid')\nRun Code Online (Sandbox Code Playgroud)\n\n欧洲/马德里时区,UTC+1/+2。
\n\nnaive_ts = datetime.strptime('2019-03-01 14:45', '%Y-%m-%d %H:%M')\nRun Code Online (Sandbox Code Playgroud)\n\n没有任何特定时区的 na\xc3\xafve 时间戳。
\n\nmadrid_ts = madrid.localize(naive_ts)\nRun Code Online (Sandbox Code Playgroud)\n\n相同的时间戳,现在附加时区 Europe/Madrid,即马德里 14:45 (UTC+1)。
\n\nutc_ts = madrid_ts.astimezone(pytz.utc)\nRun Code Online (Sandbox Code Playgroud)\n\n与 UTC马德里 14:45 (UTC+1)相同,因此,14:45 - 1 小时 \xe2\x86\x92 13:45。一切都如预期。如果马德里是 14:45,那么 UTC 时间就是 13:45,因为马德里比 UTC 早一小时。
\n\n\n\n\nRun Code Online (Sandbox Code Playgroud)\ndatetime.now()\n
不管它是什么\xe2\x80\xa6,它与上面的两个时间戳无关,并且取决于你的机器的默认时区和执行此代码时的当前时间。
\n| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |