【发布时间】:2016-11-25 14:01:47
【问题描述】:
Dateutil 的 timedelta 对象似乎有一个自定义的 __str__ 方法:
In [1]: from datetime import timedelta
In [2]: td = timedelta(hours=2)
In [3]: str(td)
Out[3]: '2:00:00'
我想做的是从它的字符串表示中重新创建一个timedelta 对象。然而,据我所知,datetime.parser.parse 方法将始终返回一个datetime.datetime 对象(参见https://dateutil.readthedocs.io/en/stable/parser.html):
In [4]: import dateutil.parser
In [5]: dateutil.parser.parse(str(td))
Out[5]: datetime.datetime(2016, 11, 25, 2, 0)
我现在看到的唯一方法是,用Convert a timedelta to days, hours and minutes 的说法,“找出一些令人作呕的简单(但冗长)的数学”来获得秒、分钟、小时等,然后传递这些回到新的timedelta 的__init__。或者有没有更简单的方法?
【问题讨论】:
标签: python datetime python-dateutil