Python datetime.tzinfo() Examples
The following are 30
code examples of datetime.tzinfo().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
datetime
, or try the search function
.
Example #1
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 6 votes |
def testGapPositiveUTCOffset(self): # Test that we don't have a problem around gaps. tzname = 'AUS Eastern Standard Time' args = self.get_args(tzname) with self.context(tzname): SYD = self.tzclass(*args) t_n, t0_u, t1_u = self.get_utc_transitions(SYD, 2012, True) t0 = t0_u.astimezone(SYD) t1 = t1_u.astimezone(SYD) self.assertEqual(t0.replace(tzinfo=None), t_n) self.assertEqual(t1.replace(tzinfo=None), t_n + timedelta(hours=2)) self.assertEqual(t0.utcoffset(), timedelta(hours=10)) self.assertEqual(t1.utcoffset(), timedelta(hours=11))
Example #2
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 6 votes |
def testFoldPositiveUTCOffset(self): # Test that we can resolve ambiguous times tzname = self._get_tzname('Australia/Sydney') with self._gettz_context(tzname): SYD = self.gettz(tzname) t0_u = datetime(2012, 3, 31, 15, 30, tzinfo=tz.tzutc()) # AEST t1_u = datetime(2012, 3, 31, 16, 30, tzinfo=tz.tzutc()) # AEDT t0_syd0 = t0_u.astimezone(SYD) t1_syd1 = t1_u.astimezone(SYD) self.assertEqual(t0_syd0.replace(tzinfo=None), datetime(2012, 4, 1, 2, 30)) self.assertEqual(t1_syd1.replace(tzinfo=None), datetime(2012, 4, 1, 2, 30)) self.assertEqual(t0_syd0.utcoffset(), timedelta(hours=11)) self.assertEqual(t1_syd1.utcoffset(), timedelta(hours=10))
Example #3
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 6 votes |
def testGapPositiveUTCOffset(self): # Test that we don't have a problem around gaps. tzname = self._get_tzname('Australia/Sydney') with self._gettz_context(tzname): SYD = self.gettz(tzname) t0_u = datetime(2012, 10, 6, 15, 30, tzinfo=tz.tzutc()) # AEST t1_u = datetime(2012, 10, 6, 16, 30, tzinfo=tz.tzutc()) # AEDT t0 = t0_u.astimezone(SYD) t1 = t1_u.astimezone(SYD) self.assertEqual(t0.replace(tzinfo=None), datetime(2012, 10, 7, 1, 30)) self.assertEqual(t1.replace(tzinfo=None), datetime(2012, 10, 7, 3, 30)) self.assertEqual(t0.utcoffset(), timedelta(hours=10)) self.assertEqual(t1.utcoffset(), timedelta(hours=11))
Example #4
Source File: compat.py From asn1tools with MIT License | 6 votes |
def strptime(data, fmt): if fmt.endswith('%z'): date = datetime.strptime(data[:-5], fmt[:-2]) try: sign = {'-': -1, '+': 1}[data[-5]] hours = sign * int(data[-4:-2]) minutes = sign * int(data[-2:]) except KeyError: raise ValueError( "time data '{}' does not match format '{}'.".format( data, fmt)) date = date.replace(tzinfo=timezone(timedelta(hours=hours, minutes=minutes))) else: date = datetime.strptime(data, fmt) return date
Example #5
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 6 votes |
def testFoldNegativeUTCOffset(self): # Test that we can resolve ambiguous times tzname = self._get_tzname('America/Toronto') with self._gettz_context(tzname): TOR = self.gettz(tzname) t0_u = datetime(2011, 11, 6, 5, 30, tzinfo=tz.tzutc()) t1_u = datetime(2011, 11, 6, 6, 30, tzinfo=tz.tzutc()) t0_tor = t0_u.astimezone(TOR) t1_tor = t1_u.astimezone(TOR) self.assertEqual(t0_tor.replace(tzinfo=None), datetime(2011, 11, 6, 1, 30)) self.assertEqual(t1_tor.replace(tzinfo=None), datetime(2011, 11, 6, 1, 30)) self.assertNotEqual(t0_tor.tzname(), t1_tor.tzname()) self.assertEqual(t0_tor.utcoffset(), timedelta(hours=-4.0)) self.assertEqual(t1_tor.utcoffset(), timedelta(hours=-5.0))
Example #6
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 6 votes |
def testFoldLondon(self): tzname = self._get_tzname('Europe/London') with self._gettz_context(tzname): LON = self.gettz(tzname) UTC = tz.tzutc() t0_u = datetime(2013, 10, 27, 0, 30, tzinfo=UTC) # BST t1_u = datetime(2013, 10, 27, 1, 30, tzinfo=UTC) # GMT t0 = t0_u.astimezone(LON) t1 = t1_u.astimezone(LON) self.assertEqual(t0.replace(tzinfo=None), datetime(2013, 10, 27, 1, 30)) self.assertEqual(t1.replace(tzinfo=None), datetime(2013, 10, 27, 1, 30)) self.assertEqual(t0.utcoffset(), timedelta(hours=1)) self.assertEqual(t1.utcoffset(), timedelta(hours=0))
Example #7
Source File: _common.py From plugin.video.emby with GNU General Public License v3.0 | 6 votes |
def _isdst(self, dt): if not self.hasdst: return False elif dt is None: return None transitions = self.transitions(dt.year) if transitions is None: return False dt = dt.replace(tzinfo=None) isdst = self._naive_isdst(dt, transitions) # Handle ambiguous dates if not isdst and self.is_ambiguous(dt): return not self._fold(dt) else: return isdst
Example #8
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 6 votes |
def testInZoneFoldEquality(self): # Two datetimes in the same zone are considered to be equal if their # wall times are equal, even if they have different absolute times. tzname = self._get_tzname('America/New_York') with self._gettz_context(tzname): NYC = self.gettz(tzname) UTC = tz.tzutc() dt0 = datetime(2011, 11, 6, 1, 30, tzinfo=NYC) dt1 = tz.enfold(dt0, fold=1) # Make sure these actually represent different times self.assertNotEqual(dt0.astimezone(UTC), dt1.astimezone(UTC)) # Test that they compare equal self.assertEqual(dt0, dt1)
Example #9
Source File: _common.py From plugin.video.emby with GNU General Public License v3.0 | 6 votes |
def is_ambiguous(self, dt): """ Whether or not the "wall time" of a given datetime is ambiguous in this zone. :param dt: A :py:class:`datetime.datetime`, naive or time zone aware. :return: Returns ``True`` if ambiguous, ``False`` otherwise. .. versionadded:: 2.6.0 """ if not self.hasdst: return False start, end = self.transitions(dt.year) dt = dt.replace(tzinfo=None) return (end <= dt < end + self._dst_base_offset)
Example #10
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 6 votes |
def get_utc_transitions(self, tzi, year, gap): dston, dstoff = tzi.transitions(year) if gap: t_n = dston - timedelta(minutes=30) t0_u = t_n.replace(tzinfo=tzi).astimezone(tz.tzutc()) t1_u = t0_u + timedelta(hours=1) else: # Get 1 hour before the first ambiguous date t_n = dstoff - timedelta(minutes=30) t0_u = t_n.replace(tzinfo=tzi).astimezone(tz.tzutc()) t_n += timedelta(hours=1) # Naive ambiguous date t0_u = t0_u + timedelta(hours=1) # First ambiguous date t1_u = t0_u + timedelta(hours=1) # Second ambiguous date return t_n, t0_u, t1_u
Example #11
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 6 votes |
def testFoldNegativeUTCOffset(self): # Test that we can resolve ambiguous times tzname = 'Eastern Standard Time' args = self.get_args(tzname) with self.context(tzname): TOR = self.tzclass(*args) t_n, t0_u, t1_u = self.get_utc_transitions(TOR, 2011, False) t0_tor = t0_u.astimezone(TOR) t1_tor = t1_u.astimezone(TOR) self.assertEqual(t0_tor.replace(tzinfo=None), t_n) self.assertEqual(t1_tor.replace(tzinfo=None), t_n) self.assertNotEqual(t0_tor.tzname(), t1_tor.tzname()) self.assertEqual(t0_tor.utcoffset(), timedelta(hours=-4.0)) self.assertEqual(t1_tor.utcoffset(), timedelta(hours=-5.0))
Example #12
Source File: base.py From misp42splunk with GNU Lesser General Public License v3.0 | 6 votes |
def _mock(self, context=None): dt = datetime.datetime( year=random.randrange(600) + 1900, month=random.randrange(12) + 1, day=random.randrange(28) + 1, hour=random.randrange(24), minute=random.randrange(60), second=random.randrange(60), microsecond=random.randrange(1000000)) if self.tzd == 'reject' or \ self.drop_tzinfo or \ self.tzd == 'allow' and random.randrange(2): return dt elif self.convert_tz: return dt.replace(tzinfo=self.UTC) else: return dt.replace(tzinfo=self.offset_timezone(hours=random.randrange(-12, 15), minutes=random.choice([0, 30, 45])))
Example #13
Source File: api.py From razzy-spinner with GNU General Public License v3.0 | 6 votes |
def check_date_limit(self, data, verbose=False): """ Validate date limits. """ if self.upper_date_limit or self.lower_date_limit: date_fmt = '%a %b %d %H:%M:%S +0000 %Y' tweet_date = \ datetime.strptime(data['created_at'], date_fmt).replace(tzinfo=UTC) if (self.upper_date_limit and tweet_date > self.upper_date_limit) or \ (self.lower_date_limit and tweet_date < self.lower_date_limit): if self.upper_date_limit: message = "earlier" date_limit = self.upper_date_limit else: message = "later" date_limit = self.lower_date_limit if verbose: print("Date limit {0} is {1} than date of current tweet {2}".\ format(date_limit, message, tweet_date)) self.do_stop = True
Example #14
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 6 votes |
def testGapNegativeUTCOffset(self): # Test that we don't have a problem around gaps. tzname = 'Eastern Standard Time' args = self.get_args(tzname) with self.context(tzname): TOR = self.tzclass(*args) t_n, t0_u, t1_u = self.get_utc_transitions(TOR, 2011, True) t0 = t0_u.astimezone(TOR) t1 = t1_u.astimezone(TOR) self.assertEqual(t0.replace(tzinfo=None), t_n) self.assertEqual(t1.replace(tzinfo=None), t_n + timedelta(hours=2)) self.assertNotEqual(t0.tzname(), t1.tzname()) self.assertEqual(t0.utcoffset(), timedelta(hours=-5.0)) self.assertEqual(t1.utcoffset(), timedelta(hours=-4.0))
Example #15
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 6 votes |
def testTzwinName(self): # https://github.com/dateutil/dateutil/issues/143 tw = tz.tzwin('Eastern Standard Time') # Cover the transitions for at least two years. ESTs = 'Eastern Standard Time' EDTs = 'Eastern Daylight Time' transition_dates = [(datetime(2015, 3, 8, 0, 59), ESTs), (datetime(2015, 3, 8, 3, 1), EDTs), (datetime(2015, 11, 1, 0, 59), EDTs), (datetime(2015, 11, 1, 3, 1), ESTs), (datetime(2016, 3, 13, 0, 59), ESTs), (datetime(2016, 3, 13, 3, 1), EDTs), (datetime(2016, 11, 6, 0, 59), EDTs), (datetime(2016, 11, 6, 3, 1), ESTs)] for t_date, expected in transition_dates: self.assertEqual(t_date.replace(tzinfo=tw).tzname(), expected)
Example #16
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 6 votes |
def testInZoneFoldEquality(self): # Two datetimes in the same zone are considered to be equal if their # wall times are equal, even if they have different absolute times. tzname = 'Eastern Standard Time' args = self.get_args(tzname) with self.context(tzname): NYC = self.tzclass(*args) UTC = tz.tzutc() t_n, t0_u, t1_u = self.get_utc_transitions(NYC, 2011, False) dt0 = t_n.replace(tzinfo=NYC) dt1 = tz.enfold(dt0, fold=1) # Make sure these actually represent different times self.assertNotEqual(dt0.astimezone(UTC), dt1.astimezone(UTC)) # Test that they compare equal self.assertEqual(dt0, dt1) ### # Test Cases
Example #17
Source File: _common.py From plugin.video.emby with GNU General Public License v3.0 | 6 votes |
def _fold_status(self, dt_utc, dt_wall): """ Determine the fold status of a "wall" datetime, given a representation of the same datetime as a (naive) UTC datetime. This is calculated based on the assumption that ``dt.utcoffset() - dt.dst()`` is constant for all datetimes, and that this offset is the actual number of hours separating ``dt_utc`` and ``dt_wall``. :param dt_utc: Representation of the datetime as UTC :param dt_wall: Representation of the datetime as "wall time". This parameter must either have a `fold` attribute or have a fold-naive :class:`datetime.tzinfo` attached, otherwise the calculation may fail. """ if self.is_ambiguous(dt_wall): delta_wall = dt_wall - dt_utc _fold = int(delta_wall == (dt_utc.utcoffset() - dt_utc.dst())) else: _fold = 0 return _fold
Example #18
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 5 votes |
def testTimeOnlyGettzDST(self): # gettz returns None tz_get = self.gettz('Europe/Minsk') self.assertIs(dt_time(13, 20, tzinfo=tz_get).dst(), None)
Example #19
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 5 votes |
def testTimeOnlyDSTLocalUTC(self): with TZEnvContext(self.UTC): self.assertEqual(dt_time(13, 20, tzinfo=tz.tzlocal()).dst(), timedelta(0))
Example #20
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 5 votes |
def testTimeOnlyGettz(self): # gettz returns None tz_get = self.gettz('Europe/Minsk') self.assertIs(dt_time(13, 20, tzinfo=tz_get).utcoffset(), None)
Example #21
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 5 votes |
def testFileLastTransition(self): # After the last transition, it goes to standard time in perpetuity tzc = tz.tzfile(BytesIO(base64.b64decode(TZFILE_EST5EDT))) self.assertEqual(datetime(2037, 10, 25, 0, 59, tzinfo=tzc).tzname(), "EDT") last_date = tz.enfold(datetime(2037, 10, 25, 1, 00, tzinfo=tzc), fold=1) self.assertEqual(last_date.tzname(), "EST") self.assertEqual(datetime(2038, 5, 25, 12, 0, tzinfo=tzc).tzname(), "EST")
Example #22
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 5 votes |
def _test_us_zone(self, tzc, func, values, start): if start: dt1 = datetime(2003, 3, 9, 1, 59) dt2 = datetime(2003, 3, 9, 2, 00) fold = [0, 0] else: dt1 = datetime(2003, 11, 2, 0, 59) dt2 = datetime(2003, 11, 2, 1, 00) fold = [0, 1] dts = (tz.enfold(dt.replace(tzinfo=tzc), fold=f) for dt, f in zip((dt1, dt2), fold)) for value, dt in zip(values, dts): self.assertEqual(func(dt), value)
Example #23
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 5 votes |
def testTimeOnlyUTC(self): # https://github.com/dateutil/dateutil/issues/132 # tzutc doesn't care tz_utc = tz.tzutc() self.assertEqual(dt_time(13, 20, tzinfo=tz_utc).utcoffset(), timedelta(0))
Example #24
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 5 votes |
def testTimeOnlyOffsetLocalDST(self): with TZEnvContext(self.TZ_EST): self.assertIs(dt_time(13, 20, tzinfo=tz.tzlocal()).utcoffset(), None)
Example #25
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 5 votes |
def testTimeOnlyOffsetLocalUTC(self): with TZEnvContext(self.UTC): self.assertEqual(dt_time(13, 20, tzinfo=tz.tzlocal()).utcoffset(), timedelta(0))
Example #26
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 5 votes |
def _testTzFunc(self, tzval, func, std_val, dst_val): """ This generates tests about how the behavior of a function ``func`` changes between STD and DST (e.g. utcoffset, tzname, dst). It assume that DST starts the 2nd Sunday in March and ends the 1st Sunday in November """ with TZEnvContext(tzval): dt1 = datetime(2015, 2, 1, 12, 0, tzinfo=tz.tzlocal()) # STD dt2 = datetime(2015, 5, 1, 12, 0, tzinfo=tz.tzlocal()) # DST self.assertEqual(func(dt1), std_val) self.assertEqual(func(dt2), dst_val)
Example #27
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 5 votes |
def testAmbiguity(self): # Pick an arbitrary datetime, this should always return False. dt = datetime(2011, 9, 1, 2, 30, tzinfo=tz.tzoffset("EST", -5 * 3600)) self.assertFalse(tz.datetime_ambiguous(dt))
Example #28
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 5 votes |
def testTzNameNone(self): gmt5 = tz.tzoffset(None, -18000) # -5:00 self.assertIs(datetime(2003, 10, 26, 0, 0, tzinfo=gmt5).tzname(), None)
Example #29
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 5 votes |
def testAmbiguity(self): # Pick an arbitrary datetime, this should always return False. dt = datetime(2011, 9, 1, 2, 30, tzinfo=tz.tzutc()) self.assertFalse(tz.datetime_ambiguous(dt))
Example #30
Source File: test_tz.py From plugin.video.emby with GNU General Public License v3.0 | 5 votes |
def testEqualAmbiguousComparison(self): tzname = self._get_tzname('Australia/Sydney') with self._gettz_context(tzname): SYD0 = self.gettz(tzname) SYD1 = self.gettz(tzname) t0_u = datetime(2012, 3, 31, 14, 30, tzinfo=tz.tzutc()) # AEST t0_syd0 = t0_u.astimezone(SYD0) t0_syd1 = t0_u.astimezone(SYD1) # This is considered an "inter-zone comparison" because it's an # ambiguous datetime. self.assertEqual(t0_syd0, t0_syd1)