我正在寻找一种快速输入时间的方法,然后python将其转换为其他时区(可能最多10个不同的时区)
抱歉.我根本不熟悉python中的时间,如果有人能把我放在正确的方向,我会非常感激.
delorean文档显示这种方式来获得在给定的时区当前时间 使用datetime:
from datetime import datetime
from pytz import timezone
EST = "US/Eastern"
UTC = "UTC"
d = datetime.utcnow()
utc = timezone(UTC)
est = timezone(EST)
d = utc.localize(d)
d = est.normalize(EST)
Run Code Online (Sandbox Code Playgroud)
并将其与基于delorian的代码进行比较:
from delorean import Delorean
EST = "US/Eastern"
d = Delorean(timezone=EST)
Run Code Online (Sandbox Code Playgroud)
我相信这个datetime例子应该写成:
from datetime import datetime
import pytz
eastern_timezone = pytz.timezone("US/Eastern")
d = datetime.now(eastern_timezone)
Run Code Online (Sandbox Code Playgroud)
这更简洁.
当最后一个代码示例失败而第一个代码示例继续工作时,是否有任何情况?
更新: 当前示例:
from datetime import datetime
import pytz
d = datetime.utcnow()
d = pytz.utc.localize(d)
est …Run Code Online (Sandbox Code Playgroud) 我想在Python中将当前时间转换为+0900.
这样做的恰当方法是什么(假设在时间模块中)?
我已经读过这不包含在Python中,你必须使用像pytz这样的东西.
我不希望在服务器或全局上更改它,只是在这一个实例中.
我正在尝试将 UTC 时间戳转换为西班牙时区的时间戳。
>>> import datetime as dt
>>> import pytz
>>> today = dt.datetime.utcfromtimestamp(1573516800)
datetime.datetime(2019, 11, 12, 0, 0)
>>> today.replace(tzinfo=pytz.timezone('Europe/Madrid')).timestamp()
1573517700.0
>>> today.replace(tzinfo=pytz.timezone('Etc/GMT+1')).timestamp()
1573520400.0
Run Code Online (Sandbox Code Playgroud)
我很惊讶我得到了不同的结果Europe/Madrid和Etc/GMT+1。为什么是这样?应该Europe/Madrid以不同的方式使用,或者这可能是一个错误?