作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
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__
.还是有更简单的方法?
最佳答案
使用datetime.strptime
将字符串转换为 timedelta。
import datetime
td = datetime.timedelta(hours=2)
# timedelta to string
s = str(td) # 2:00:00
# string to timedelta
t = datetime.datetime.strptime(s,"%H:%M:%S")
td2 = datetime.timedelta(hours=t.hour, minutes=t.minute, seconds=t.second)
关于python - 如何将 timedelta 转换为字符串并再次返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40806730/
我是一名优秀的程序员,十分优秀!