Python 3.x 当地时间到UTC
“v”是从数据库读取的python datetime对象-“2020-09-24 00:00:00” 我想将上面的内容存储在祖鲁的LDAP中,即“2020-09-24 07:00:00”,因为我位于洛杉矶 v=v.strftime(“%Y%m%d%H%m%SZ”)-直接转换为20200924000000Z(不是20200924070000Z)Python 3.x 当地时间到UTC,python-3.x,datetime,Python 3.x,Datetime,“v”是从数据库读取的python datetime对象-“2020-09-24 00:00:00” 我想将上面的内容存储在祖鲁的LDAP中,即“2020-09-24 07:00:00”,因为我位于洛杉矶 v=v.strftime(“%Y%m%d%H%m%SZ”)-直接转换为20200924000000Z(不是20200924070000Z) 这是正确的行为吗?如果没有,我如何在注入LDAP之前最好地将时间读取转换为UTC?使用pytz模块,该模块附带完整的时区+UTC列表。弄清楚本地时区是什么
这是正确的行为吗?如果没有,我如何在注入LDAP之前最好地将时间读取转换为UTC?使用pytz模块,该模块附带完整的时区+UTC列表。弄清楚本地时区是什么,从中构造一个时区对象,并操纵它并将其附加到原始日期时间。 最后,使用DateTime.timezone()方法将DateTime转换为UTC。 源代码,使用本地时区“America/Los_Angeles”,用于字符串“2001-2-3 10:11:12”: 尝试这样做:
import pytz, datetime
local = pytz.timezone ("America/Los_Angeles")
naive = datetime.datetime.strptime ("2001-2-3 10:11:12", "%Y-%m-%d %H:%M:%S")
local_dt = local.localize(naive, is_dst=None)
utc_dt = local_dt.astimezone(pytz.utc)
使用pytz模块,该模块附带完整的时区+UTC列表。弄清楚本地时区是什么,从中构造一个时区对象,并操纵它并将其附加到原始日期时间。 最后,使用DateTime.timezone()方法将DateTime转换为UTC。 源代码,使用本地时区“America/Los_Angeles”,用于字符串“2001-2-3 10:11:12”: 尝试这样做:
import pytz, datetime
local = pytz.timezone ("America/Los_Angeles")
naive = datetime.datetime.strptime ("2001-2-3 10:11:12", "%Y-%m-%d %H:%M:%S")
local_dt = local.localize(naive, is_dst=None)
utc_dt = local_dt.astimezone(pytz.utc)
- 将字符串解析为datetime对象(这将是幼稚的;不知道时区)-您的格式允许使用
,这比fromisoformat
strtime
- 设置适当的时区(此处:美国/太平洋为洛杉矶)
- 将时区更改为UTC
- 以所需格式输出为字符串
from datetime import datetime
from dateutil.tz import gettz
s = '2020-09-24 00:00:00'
dt = datetime.fromisoformat(s)
# set time zone
dt = dt.replace(tzinfo=gettz('US/Pacific'))
# to UTC
dt = dt.astimezone(gettz('UTC'))
# to string
out = dt.strftime('%Y%m%d%H%M%SZ')
# '20200924070000Z'
- 将字符串解析为datetime对象(这将是幼稚的;不知道时区)-您的格式允许使用
,这比fromisoformat
strtime
- 设置适当的时区(此处:美国/太平洋为洛杉矶)
- 将时区更改为UTC
- 以所需格式输出为字符串
from datetime import datetime
from dateutil.tz import gettz
s = '2020-09-24 00:00:00'
dt = datetime.fromisoformat(s)
# set time zone
dt = dt.replace(tzinfo=gettz('US/Pacific'))
# to UTC
dt = dt.astimezone(gettz('UTC'))
# to string
out = dt.strftime('%Y%m%d%H%M%SZ')
# '20200924070000Z'