def testZoneInfoFileStart1(self):
tz = self.gettz("EST5EDT")
self.assertEqual(datetime(2003, 4, 6, 1, 59, tzinfo=tz).tzname(), "EST",
MISSING_TARBALL)
self.assertEqual(datetime(2003, 4, 6, 2, 00, tzinfo=tz).tzname(), "EDT")
python类gettz()的实例源码
def testZoneInfoFileEnd1(self):
tzc = self.gettz("EST5EDT")
self.assertEqual(datetime(2003, 10, 26, 0, 59, tzinfo=tzc).tzname(),
"EDT", MISSING_TARBALL)
end_est = tz.enfold(datetime(2003, 10, 26, 1, 00, tzinfo=tzc), fold=1)
self.assertEqual(end_est.tzname(), "EST")
def testZoneInfoOffsetSignal(self):
utc = self.gettz("UTC")
nyc = self.gettz("America/New_York")
self.assertNotEqual(utc, None, MISSING_TARBALL)
self.assertNotEqual(nyc, None)
t0 = datetime(2007, 11, 4, 0, 30, tzinfo=nyc)
t1 = t0.astimezone(utc)
t2 = t1.astimezone(nyc)
self.assertEqual(t0, t2)
self.assertEqual(nyc.dst(t0), timedelta(hours=1))
def testZoneInfoDeepCopy(self):
CHI = self.gettz('America/Chicago')
CHI_COPY = copy.deepcopy(CHI)
self.assertIsNot(CHI, CHI_COPY)
self.assertEqual(CHI, CHI_COPY)
def testZoneInfoDeprecated(self):
with self.assertWarns(DeprecationWarning):
tzi = zoneinfo.gettz('US/Eastern')
def gettz(self, tzname):
tzname_map = {'Australia/Sydney': self.TZ_AEST,
'America/Toronto': self.TZ_EST,
'America/New_York': self.TZ_EST}
return tzname_map[tzname]
def testBrokenIsDstHandling(self):
# tzrange._isdst() was using a date() rather than a datetime().
# Issue reported by Lennart Regebro.
dt = datetime(2007, 8, 6, 4, 10, tzinfo=tz.tzutc())
self.assertEqual(dt.astimezone(tz=tz.gettz("GMT+2")),
datetime(2007, 8, 6, 6, 10, tzinfo=tz.tzstr("GMT+2")))
def gettz(self, tzname):
# Actual time zone changes are handled by the _gettz_context function
tzname_map = {'Australia/Sydney': self.TZ_AEST,
'America/Toronto': self.TZ_EST,
'America/New_York': self.TZ_EST}
return tz.tzstr(tzname_map[tzname])
def testGMTHasNoDaylight(self):
# tz.tzstr("GMT+2") improperly considered daylight saving time.
# Issue reported by Lennart Regebro.
dt = datetime(2007, 8, 6, 4, 10)
self.assertEqual(tz.gettz("GMT+2").dst(dt), timedelta(0))
def testGMTOffset(self):
# GMT and UTC offsets have inverted signal when compared to the
# usual TZ variable handling.
dt = datetime(2007, 8, 6, 4, 10, tzinfo=tz.tzutc())
self.assertEqual(dt.astimezone(tz=tz.tzstr("GMT+2")),
datetime(2007, 8, 6, 6, 10, tzinfo=tz.tzstr("GMT+2")))
self.assertEqual(dt.astimezone(tz=tz.gettz("UTC-2")),
datetime(2007, 8, 6, 2, 10, tzinfo=tz.tzstr("UTC-2")))
def testPickleTzGettz(self):
self.assertPicklable(tz.gettz('America/New_York'))
def testSupportAmbiguityFoldNaive(self):
tzi = tz.gettz('US/Eastern')
dt = datetime(2011, 11, 6, 1, 30)
self.assertTrue(tz.datetime_ambiguous(dt, tz=tzi))
def testSupportAmbiguityFoldAware(self):
tzi = tz.gettz('US/Eastern')
dt = datetime(2011, 11, 6, 1, 30, tzinfo=tzi)
self.assertTrue(tz.datetime_ambiguous(dt))
def testSupportAmbiguityUnambiguousNaive(self):
tzi = tz.gettz('US/Eastern')
dt = datetime(2011, 11, 6, 4, 30, tzinfo=tzi)
self.assertFalse(tz.datetime_ambiguous(dt))
def testSpecifiedTzOverridesAttached(self):
# If a tz is specified, the datetime will be treated as naive.
# This is not ambiguous in the local zone
dt = datetime(2011, 11, 6, 1, 30, tzinfo=tz.gettz('Australia/Sydney'))
self.assertFalse(tz.datetime_ambiguous(dt))
tzi = tz.gettz('US/Eastern')
self.assertTrue(tz.datetime_ambiguous(dt, tz=tzi))
def testInGapNaive(self):
tzi = tz.gettz('Australia/Sydney')
dt = datetime(2012, 10, 7, 2, 30)
self.assertFalse(tz.datetime_exists(dt, tz=tzi))
def testInGapAware(self):
tzi = tz.gettz('Australia/Sydney')
dt = datetime(2012, 10, 7, 2, 30, tzinfo=tzi)
self.assertFalse(tz.datetime_exists(dt))
def testExistsNaive(self):
tzi = tz.gettz('Australia/Sydney')
dt = datetime(2012, 10, 7, 10, 30)
self.assertTrue(tz.datetime_exists(dt, tz=tzi))
def testSpecifiedTzOverridesAttached(self):
EST = tz.gettz('US/Eastern')
AEST = tz.gettz('Australia/Sydney')
dt = datetime(2012, 10, 7, 2, 30, tzinfo=EST) # This time exists
self.assertFalse(tz.datetime_exists(dt, tz=AEST))
def rhd_filename_to_timestamp(fname, timezone):
return arrow.get(fname, 'YYMMDD_HHmmss').replace(
tzinfo=tz.gettz(timezone)).datetime