Source code for dateparser.timezones
# -*- coding: utf-8 -*-
import re
from datetime import datetime, timedelta
from math import ceil
HOUR = 3600
tz_offsets = {
'CET': +1 * HOUR,
'EDT': -4 * HOUR,
'PDT': -7 * HOUR,
'PST': -8 * HOUR,
}
_tz_offsets = {
re.compile(r'\b%s$' % timezone): timedelta(seconds=offset)
for timezone, offset in tz_offsets.iteritems()
}
[docs]def pop_tz_offset_from_string(date_string):
for timezone_re, offset in _tz_offsets.iteritems():
if timezone_re.search(date_string):
date_string = timezone_re.sub('', date_string).rstrip()
return date_string, offset
else:
return date_string, None
[docs]def convert_to_local_tz(datetime_obj, datetime_tz_offset):
return datetime_obj - datetime_tz_offset + local_tz_offset
[docs]def get_local_tz_offset():
delta = datetime.now() - datetime.utcnow()
days, seconds, microseconds = delta.days, delta.seconds, delta.microseconds
return timedelta(seconds=days * 24 * HOUR + seconds + ceil(microseconds / 1000000.0))
local_tz_offset = get_local_tz_offset()