Python 验证字符串格式的datetime的时区

Python 验证字符串格式的datetime的时区,python,datetime,Python,Datetime,我需要确认我收到的字符串格式的datetime确实在预期的时区内。预期时区是pytz中的元素。所有时区都是“欧洲/布鲁塞尔”。 我得到的输入格式为2017-03-26T21:12:00+02:00。我想确认输入的时区是欧洲/布鲁塞尔。 以下是我目前使用的方法,但我不确定这是否是最佳/正确的方法 import pytz from dateutil.parser import parse input_dt = parse(datetime_str) naive_input = input_dt.

我需要确认我收到的字符串格式的datetime确实在预期的时区内。预期时区是pytz中的元素。所有时区都是“欧洲/布鲁塞尔”。 我得到的输入格式为
2017-03-26T21:12:00+02:00
。我想确认输入的时区是欧洲/布鲁塞尔。 以下是我目前使用的方法,但我不确定这是否是最佳/正确的方法

import pytz 
from dateutil.parser import parse

input_dt = parse(datetime_str)
naive_input = input_dt.replace(tzinfo=None)

tz_expected = pytz.timezone("Europe/Brussels")

# apply the expected timezone to the naive datetime
input_in_expected_tz = tz_expected.localize(naive_input)

utc_offset_of_input = get_offset_from_utc(input_dt)
expected_utc_offset = get_offset_from_utc(input_in_expected_tz)
assert utc_offset_of_input == expected_utc_offset

def get_offset_from_utc(d):
    return d.utcoffset().seconds / (60 * 60)

谢谢:)

时区中的p是什么?它应该是pytz.时区吗?请注意所述问题实际上是无法解决的。虽然您可以验证所讨论的时间戳是否是TZ的有效时间戳,但您无法确认它是否来自该时区,因为可能还有其他时区具有相同的偏移量。@Charlie G-是的,我的错。@Stephen Rauch-重要的是,来自UTC的偏移量是否正确,并且之后,一年后,如果我想转换回本地时区,它将转换为相同的
输入_dt
,假设UTC日期时间和
预期_时区
存储在一起。p.timezone中的p是什么?它应该是pytz.时区吗?请注意所述问题实际上是无法解决的。虽然您可以验证所讨论的时间戳是否是TZ的有效时间戳,但您无法确认它是否来自该时区,因为可能还有其他时区具有相同的偏移量。@Charlie G-是的,我的错。@Stephen Rauch-重要的是,来自UTC的偏移量是否正确,并且之后,一年后,如果我想转换回本地时区,它将转换为相同的
输入_dt
,假设UTC日期时间和
预期_时区
存储在一起。