python timedelta_Python使用笔记:时间的运算timedelta
发布日期:2022-02-04 01:43:58 浏览次数:29 分类:技术文章

本文共 1405 字,大约阅读时间需要 4 分钟。

用timedelta做时间运算,包括加减乘除,甚是方便。timedelta精度从天到毫秒。本文结合实例介绍timedelta的用法。

1. 一个实例

先来个实例。假设我有公共交通的时刻表,包含车辆进站和出站的时刻(A表示departure, D表示arrival),如下:

#Station Line A/D Time

Arènes T1 A 05:27:00

Arènes 64 D 05:30:00

Arènes T2 D 05:35:00

Arènes T1 A 05:38:00

Arènes T1 D 05:45:00

Arènes 65 D 05:55:00

现在想算某条线路(如34路车)在某个站点一天停留多少时间。这难免需要对时间进行加减运算。Python的timedelta可以很好地做到这一点。

class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0) # 注意参数的顺序

# A duration expressing the difference between two date, time, or datetime instances to microsecond resolution. Arguments may be integers or floats, and may be positive or negative.

2. 字符串转换成timedelta

将上述形如“05:55:00”(我在数据库保存为字符串)转换成timedelta:

from datetime import timedelta

def convert2timedelta(s):

"""convert string, like 00:00:00, to timedelta"""

tm = map(int, s.split(':'))

return timedelta(hours=tm[0], minutes=tm[1], seconds=tm[2]) # convert to timedelta

Python3支持的操作很丰富,包括+, -, *, /, //, %, divmod。除此之外,timedelta是hashable(作为字典的key),还可以进行比较==, !=。

3. timedelta

str(tm) # 返回的格式是:[D day[s], ][H]H:MM:SS[.UUUUUU], 如'1 day, 5:05:06.000001'

timedelta.total_seconds() # 返回总的秒数,等同于td / timedelta(seconds=1)

timedelta.min # 最小值,'-999999999 days, 0:00:00'

timedelta.max # 最大值,'999999999 days, 23:59:59.999999'

timedelta.resolution # 精度,0:00:00.000001

repr(tm) # 返回的格式是:datetime.timedelta(D[, S[, U]]),如'datetime.timedelta(1, 18306, 1)'

转载地址:https://blog.csdn.net/weixin_39603908/article/details/110688438 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:电脑同时安装python2和3_电脑上同时安装Python2和Python3
下一篇:python对比php开发web_django学习系列——python和php对比

发表评论

最新留言

很好
[***.229.124.182]2024年04月11日 18时15分56秒