python timedelta 求时间差省去繁琐格式转换
目录
一、需求
需要实现一个小功能,求两个时间差,如果大于某个值,就做下一步操作,否则等待。
二、实现
可以使用 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) ————————————————