def seconds_and_nanoseconds(dt): if isinstance(dt, datetime): dt = DateTime.from_native(dt) zone_epoch = DateTime(1970, 1, 1, tzinfo=dt.tzinfo) dt_clock_time = dt.to_clock_time() zone_epoch_clock_time = zone_epoch.to_clock_time() t = dt_clock_time - zone_epoch_clock_time return t.seconds, t.nanoseconds
def test_from_native(self): native = datetime(2018, 10, 1, 12, 34, 56, 789123) dt = DateTime.from_native(native) self.assertEqual(dt.year, native.year) self.assertEqual(dt.month, native.month) self.assertEqual(dt.day, native.day) self.assertEqual(dt.hour, native.hour) self.assertEqual(dt.minute, native.minute) self.assertEqual(dt.second, nano_add(native.second, nano_div(native.microsecond, 1000000)))
def test_from_native_case_2(): # python -m pytest tests/unit/time/test_datetime.py -s -v -k test_from_native_case_2 native = datetime(2018, 10, 1, 12, 34, 56, 789123, FixedOffset(0)) dt = DateTime.from_native(native) assert dt.year == native.year assert dt.month == native.month assert dt.day == native.day assert dt.hour == native.hour assert dt.minute == native.minute assert dt.second == nano_add(native.second, nano_div(native.microsecond, 1000000)) assert dt.tzinfo == FixedOffset(0)