def _hydrate_date(self, days): """ Hydrator for `Date` values. :param days: :return: Date """ return Date.from_ordinal(UNIX_EPOCH_DATE_ORDINAL + days)
def hydrate_date(days): """ Hydrator for `Date` values. :param days: :return: Date """ return Date.from_ordinal(unix_epoch_date_ordinal + days)
def test_year_week_day(self): for ordinal in range( Date(2001, 1, 1).to_ordinal(), Date(2008, 1, 1).to_ordinal()): self.assertEqual( Date.from_ordinal(ordinal).iso_calendar(), date.fromordinal(ordinal).isocalendar())
def test_zero_ordinal(self): d = Date.from_ordinal(0) self.assertEqual(d.year_month_day, (0, 0, 0)) self.assertEqual(d.year, 0) self.assertEqual(d.month, 0) self.assertEqual(d.day, 0) self.assertIs(d, ZeroDate)
def hydrate_datetime(seconds, nanoseconds, tz=None): """ Hydrator for `DateTime` and `LocalDateTime` values. :param seconds: :param nanoseconds: :param tz: :return: datetime """ minutes, seconds = map(int, divmod(seconds, 60)) hours, minutes = map(int, divmod(minutes, 60)) days, hours = map(int, divmod(hours, 24)) seconds = (1000000000 * seconds + nanoseconds) / 1000000000 t = DateTime.combine(Date.from_ordinal(UNIX_EPOCH_DATE_ORDINAL + days), Time(hours, minutes, seconds)) if tz is None: return t if isinstance(tz, int): tz_offset_minutes, tz_offset_seconds = divmod(tz, 60) zone = FixedOffset(tz_offset_minutes) else: zone = timezone(tz) return zone.localize(t)
def test_from_ordinal(self): d = Date.from_ordinal(1) self.assertEqual(d, Date(1, 1, 1))