我们从Python开源项目中,提取了以下12个代码示例,用于说明如何使用datetime.datetime.timezone()。
def __repr__(self): """Convert to formal string, for repr(). >>> tz = timezone.utc >>> repr(tz) 'datetime.timezone.utc' >>> tz = timezone(timedelta(hours=-5), 'EST') >>> repr(tz) "datetime.timezone(datetime.timedelta(-1, 68400), 'EST')" """ if self is self.utc: return 'datetime.timezone.utc' if self._name is None: return "%s(%r)" % ('datetime.' + self.__class__.__name__, self._offset) return "%s(%r, %r)" % ('datetime.' + self.__class__.__name__, self._offset, self._name)
def TimeEnd(self, timeend): if timeend is None: self._timeend = datetime.now(tz=pytz.utc) elif not isinstance(timeend, datetime): raise TypeError("req.TimeEnd must be a datetime.datetime object.") else: # Always use timezone-aware datetime. if timeend.tzinfo is None: _logger.warning('Naive HistDataReq.TimeEnd. ' 'Assumeing system local time zone.') tz_system = get_localzone() timeend = tz_system.localize(timeend) self._timeend = timeend
def __eq__(self, other): if type(other) != timezone: return False return self._offset == other._offset
def now(tzone=timezone.utc): """Return the current datetime (default to UTC). Args: tzone (datetime.timezone): Specific time zone used in datetime. Returns: datetime.datetime.now: Date time with specific time zone. """ return datetime.now(tzone)
def parsedate_to_datetime(s): # *dtuple, tz = _parsedate_tz(data) dtuple = parsedate_tz(s) tz = dtuple[-1] # if tz is None: # parsedate_tz returns 0 for "-0000" if tz is None or (tz == 0 and "-0000" in s): # "... indicates that the date-time contains no information # about the local time zone" (RFC 2822 #3.3) return datetime(*dtuple[:6]) else: # tzinfo = datetime.timezone(datetime.timedelta(seconds=tz)) # Python 3.2+ only tzinfo = get_fixed_timezone(tz // 60) # don't use timedelta (avoid Django bug #28739) return datetime(*dtuple[:6], tzinfo=tzinfo)
def parse_rfc2822date(s): """Parses an RFC-2822 formatted date string into a datetime.datetime Returns None if string isn't parseable. Returned datetime will be naive if string doesn't include known timezone offset; aware if it does. (Same as Python 3 email.utils.parsedate_to_datetime, with improved handling for unparseable date strings.) """ try: return parsedate_to_datetime(s) except (IndexError, TypeError, ValueError): # despite the docs, parsedate_to_datetime often dies on unparseable input return None
def create_tz(utcoffset=0) -> timezone: """ Create a python datetime.timezone with a given utc offset. :param utcoffset: utc offset in seconds, if 0 timezone.utc is returned. """ if utcoffset == 0: return timezone.utc else: return timezone(timedelta(seconds=utcoffset))
def to_unix_ms_tz(dt: datetime) -> Tuple[int, Union[int, None]]: """ convert a datetime to number of milliseconds since 1970 and calculate timezone offset :param dt: datetime to evaluate :return: tuple - (unix time in milliseconds, utc offset in seconds) """ utcoffset = dt.utcoffset() if utcoffset is not None: _utcoffset = utcoffset.total_seconds() unix = (dt - EPOCH_TZ).total_seconds() + _utcoffset return int(unix * 1000), int(_utcoffset) else: return int((dt - EPOCH).total_seconds() * 1000), None
def from_unix_ms(ms: int, utcoffset: int=None) -> datetime: """ convert int to a datetime. :param ms: number of milliseconds since 1970 :param utcoffset: if set a timezone i added to the datime based on the offset in seconds. :return: datetime - including timezone if utcoffset is not None, else timezone naïve """ dt = EPOCH + timedelta(milliseconds=ms) if utcoffset is not None: dt = dt.replace(tzinfo=create_tz(utcoffset)) return dt
def _standardize_index( self, df_in: pd.DataFrame, symbol: str=None, datatype: str=None, barsize: str=None, tz: str=None): """Normalize input DataFrame index to MarketDataBlock standard. """ # Add or starndardize index names in the input. if isinstance(df_in.index, pd.MultiIndex): df_in.reset_index(inplace=True) # Rename ambiguous column names. df_in.columns = [ col_rename.get(col.strip().lower(), col.strip().lower()) for col in df_in.columns] # Insert Symbol, DataType, Barsize columns from arguments if not # found in the input dataframe. for col in MarketDataBlock.data_index: if col not in df_in.columns: if locals().get(col.lower(), None) is None: raise KeyError( 'No {0} argument and no {0} column in the DataFrame.' .format(col)) df_in.insert(0, col, locals()[col.lower()]) # Convert datetime strings to pandas DatetimeIndex df_in['TickerTime'] = pd.DatetimeIndex( df_in['TickerTime'].apply(pd.Timestamp)) # Standardize BarSize strings df_in['BarSize'] = df_in['BarSize'].map(timedur_standardize) # Set index to class-defined MultiIndex df_in.set_index(MarketDataBlock.data_index, inplace=True) # Set time zone so all DatetimeIndex are tz-aware df_in_tz = df_in.index.levels[self.__class__.dtlevel].tz if df_in_tz is None or isinstance(df_in_tz, timezone) or \ isinstance(df_in_tz, pytz._FixedOffset): # Input df has naive time index, or tzinfo is not pytz.timezone() if tz is None: raise ValueError( 'Argument tz=None, and TickerTime.tzinfo is None(naive),' 'datetime.timezone, or pytz._FixedOffset.') if df_in_tz is None: df_in = df_in.tz_localize(tz, level=self.__class__.dtlevel) else: df_in = df_in.tz_convert(tz, level=self.__class__.dtlevel) return df_in