验证字符串格式化日期时间的时区

时间:2017-03-26 22:23:49

标签: python datetime

我需要确认我收到的字符串格式的日期时间确实在预期的时区内。预期时区是来自pytz.all_timezones的元素,例如“欧洲/布鲁塞尔”。 我得到的输入格式为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)

谢谢:)

0 个答案:

没有答案