python timedelta 求时间差省去繁琐格式转换

135 阅读2分钟

目录

一、需求

二、实现

三、补充


一、需求

需要实现一个小功能,求两个时间差,如果大于某个值,就做下一步操作,否则等待。

二、实现

可以使用 datetime.timedelta

1) 将时间转化为字符串形式

可以看出直接将两个字符串格式的时间做差报错。

2)不转换为字符串

可以看出结果是 timedelta()

可以这样写在程序中不好取值呀,因此可以使用函数 total_seconds(),函数返回值为 float 类型。

以上,问题解决~

三、补充

datetime.timedelta 除了 total_seconds() 还有哪些参数呢,可以在终端使用 help 来查看:

help(datetime.timedelta)



Help on class timedelta in module datetime:

class timedelta(builtins.object)
|  Difference between two datetime values.
|
|  timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
|
|  All arguments are optional and default to 0.
|  Arguments may be integers or floats, and may be positive or negative.
|
|  Methods defined here:
|
|  __abs__(self, /)
|      abs(self)
|
|  __add__(self, value, /)
|      Return self+value.
|
|  __bool__(self, /)
|      self != 0
|
|  __divmod__(self, value, /)
|      Return divmod(self, value).
|
:...skipping...
Help on class timedelta in module datetime:

class timedelta(builtins.object)
|  Difference between two datetime values.
|
|  timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
|
|  All arguments are optional and default to 0.
|  Arguments may be integers or floats, and may be positive or negative.
|
|  Methods defined here:
|
|  __abs__(self, /)
|      abs(self)
|
|  __add__(self, value, /)
|      Return self+value.
|
|  __bool__(self, /)
|      self != 0
|
|  __divmod__(self, value, /)
|      Return divmod(self, value).
|
|  __eq__(self, value, /)
:...skipping...
Help on class timedelta in module datetime:

class timedelta(builtins.object)
|  Difference between two datetime values.
|
|  timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
|
|  All arguments are optional and default to 0.
|  Arguments may be integers or floats, and may be positive or negative.
|
|  Methods defined here:
|
|  __abs__(self, /)
|      abs(self)
|
|  __add__(self, value, /)
|      Return self+value.
|
|  __bool__(self, /)
|      self != 0
|
|  __divmod__(self, value, /)
|      Return divmod(self, value).
|
|  __eq__(self, value, /)
|      Return self==value.
|
|  __floordiv__(self, value, /)
|      Return self//value.
|
|  __ge__(self, value, /)
|      Return self>=value.
|
|  __getattribute__(self, name, /)
|      Return getattr(self, name).
|
|  __gt__(self, value, /)
|      Return self>value.
|
|  __hash__(self, /)
|      Return hash(self).
|
|  __le__(self, value, /)
|      Return self<=value.
|
|  __lt__(self, value, /)
|      Return self<value.
|
|  __mod__(self, value, /)
|      Return self%value.
|
|  __mul__(self, value, /)
|      Return self*value.
|
|  __ne__(self, value, /)
|      Return self!=value.
|
|  __neg__(self, /)
|      -self
|
|  __pos__(self, /)
|      +self
|
|  __radd__(self, value, /)
|      Return value+self.
|
|  __rdivmod__(self, value, /)
|      Return divmod(value, self).
|
|  __reduce__(...)
|      __reduce__() -> (cls, state)
|
|  __repr__(self, /)
|      Return repr(self).
Help on class timedelta in module datetime:

class timedelta(builtins.object)
|  Difference between two datetime values.
|
|  timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, ho
urs=0, weeks=0)
|
|  All arguments are optional and default to 0.
|  Arguments may be integers or floats, and may be positive or negative.
|
|  Methods defined here:
|
|  __abs__(self, /)
|      abs(self)
|
|  __add__(self, value, /)
|      Return self+value.
|
|  __bool__(self, /)
|      self != 0
|
|  __divmod__(self, value, /)
|      Return divmod(self, value).
|
|  __eq__(self, value, /)
|      Return self==value.
|
|  __floordiv__(self, value, /)
|      Return self//value.
|
|  __ge__(self, value, /)
|      Return self>=value.
|
|  __getattribute__(self, name, /)
|      Return getattr(self, name).
|
|  __gt__(self, value, /)
|      Return self>value.
|
|  __hash__(self, /)
|      Return hash(self).
|
|  __le__(self, value, /)
|      Return self<=value.
|
|  __lt__(self, value, /)
|      Return self<value.
|
|  __mod__(self, value, /)
|      Return self%value.
|
|  __mul__(self, value, /)
|      Return self*value.
|
|  __ne__(self, value, /)
|      Return self!=value.
|
|  __neg__(self, /)
|      -self
|
|  __pos__(self, /)
|      +self
|
|  __radd__(self, value, /)
|      Return value+self.
|
|  __rdivmod__(self, value, /)
|      Return divmod(value, self).
|
|  __reduce__(...)
|      __reduce__() -> (cls, state)
|
|  __repr__(self, /)
|      Return repr(self).
|
|  __rfloordiv__(self, value, /)
|      Return value//self.
|
|  __rmod__(self, value, /)
|      Return value%self.
|
|  __rmul__(self, value, /)
|      Return value*self.
|
|  __rsub__(self, value, /)
|      Return value-self.
|
|  __rtruediv__(self, value, /)
|      Return value/self.
|
|  __str__(self, /)
|      Return str(self).
|
|  __sub__(self, value, /)
|      Return self-value.
|
|  __truediv__(self, value, /)
|      Return self/value.
|
|  total_seconds(...)
|      Total seconds in the duration.
|
|  ----------------------------------------------------------------------
|  Static methods defined here:
|
|  __new__(*args, **kwargs) from builtins.type
|      Create and return a new object.  See help(type) for accurate signature
.
|
|  ----------------------------------------------------------------------
|  Data descriptors defined here:
|
|  days
|      Number of days.
|
|  microseconds
|      Number of microseconds (>= 0 and less than 1 second).
|
|  seconds
|      Number of seconds (>= 0 and less than 1 day).
|
|  ----------------------------------------------------------------------
|  Data and other attributes defined here:
|
|  max = datetime.timedelta(days=999999999, seconds=86399, microseconds=9...
|
|  min = datetime.timedelta(days=-999999999)
|
|  resolution = datetime.timedelta(microseconds=1)
(END)