Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 当地时间到UTC_Python 3.x_Datetime - Fatal编程技术网

Python 3.x 当地时间到UTC

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列表。弄清楚本地时区是什么

“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列表。弄清楚本地时区是什么,从中构造一个时区对象,并操纵它并将其附加到原始日期时间。 最后,使用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
  • 以所需格式输出为字符串
由于pytz将随Python3.9发布,我建议使用。在Python3.9中,您将需要对这类事情进行处理

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
  • 以所需格式输出为字符串
由于pytz将随Python3.9发布,我建议使用。在Python3.9中,您将需要对这类事情进行处理

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'