本文整理汇总了Python中datetime.tzinfo方法的典型用法代码示例。如果您正苦于以下问题:Python datetime.tzinfo方法的具体用法?Python datetime.tzinfo怎么用?Python datetime.tzinfo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类datetime
的用法示例。
在下文中一共展示了datetime.tzinfo方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: import datetime [as 别名]
# 或者: from datetime import tzinfo [as 别名]
def __init__(self, limit=20, upper_date_limit=None, lower_date_limit=None):
"""
:param int limit: The number of data items to process in the current\
round of processing.
:param tuple upper_date_limit: The date at which to stop collecting\
new data. This should be entered as a tuple which can serve as the\
argument to `datetime.datetime`.\
E.g. `date_limit=(2015, 4, 1, 12, 40)` for 12:30 pm on April 1 2015.
:param tuple lower_date_limit: The date at which to stop collecting\
new data. See `upper_data_limit` for formatting.
"""
BasicTweetHandler.__init__(self, limit)
self.upper_date_limit = None
self.lower_date_limit = None
if upper_date_limit:
self.upper_date_limit = datetime(*upper_date_limit, tzinfo=LOCAL)
if lower_date_limit:
self.lower_date_limit = datetime(*lower_date_limit, tzinfo=LOCAL)
self.startingup = True
示例2: check_date_limit
# 需要导入模块: import datetime [as 别名]
# 或者: from datetime import tzinfo [as 别名]
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
示例3: _mock
# 需要导入模块: import datetime [as 别名]
# 或者: from datetime import tzinfo [as 别名]
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])))
示例4: strptime
# 需要导入模块: import datetime [as 别名]
# 或者: from datetime import tzinfo [as 别名]
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
示例5: _fold_status
# 需要导入模块: import datetime [as 别名]
# 或者: from datetime import tzinfo [as 别名]
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
示例6: is_ambiguous
# 需要导入模块: import datetime [as 别名]
# 或者: from datetime import tzinfo [as 别名]
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)
示例7: _isdst
# 需要导入模块: import datetime [as 别名]
# 或者: from datetime import tzinfo [as 别名]
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
示例8: testFoldPositiveUTCOffset
# 需要导入模块: import datetime [as 别名]
# 或者: from datetime import tzinfo [as 别名]
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))
示例9: testGapPositiveUTCOffset
# 需要导入模块: import datetime [as 别名]
# 或者: from datetime import tzinfo [as 别名]
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))
示例10: testFoldNegativeUTCOffset
# 需要导入模块: import datetime [as 别名]
# 或者: from datetime import tzinfo [as 别名]
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))
示例11: testFoldLondon
# 需要导入模块: import datetime [as 别名]
# 或者: from datetime import tzinfo [as 别名]
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))
示例12: testInZoneFoldEquality
# 需要导入模块: import datetime [as 别名]
# 或者: from datetime import tzinfo [as 别名]
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)
示例13: get_utc_transitions
# 需要导入模块: import datetime [as 别名]
# 或者: from datetime import tzinfo [as 别名]
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
示例14: testGapNegativeUTCOffset
# 需要导入模块: import datetime [as 别名]
# 或者: from datetime import tzinfo [as 别名]
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))
示例15: testTzwinName
# 需要导入模块: import datetime [as 别名]
# 或者: from datetime import tzinfo [as 别名]
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)