python - 仅返回天数的日期时间差异?

标签 python regex datetime

$ cat .t.py 
import re
from datetime import datetime as dtt

oldestDate = dateComp = dtt.strptime('1.1.1001', '%d.%m.%Y')
dateComp = dtt.strptime('11.1.2011', '%d.%m.%Y')
ind = re.sub(" days,.*", "", str((dateComp - oldestDate)))

print ind
print dateComp - oldestDate
$ python .t.py 
368905
368905 days, 0:00:00

如何才能获得没有正则表达式代码气味的日子?问题升级,因为我需要在许多位置使用索引。那么有一些更干净的方法可以做到这一点吗?

最佳答案

不要这么快使用str()。从一个日期时间减去另一个日期时间得到的结果是 timedelta对象,它有一个您可以读取的 .days 属性。

(dateComp - oldestDate).days

请注意,读取 .days 属性意味着它将向下舍入差异 - 如果您想四舍五入到最接近的天数,则可以您需要添加一些逻辑来检查 .seconds 属性,看看它是否更接近 0 还是 86400。

关于python - 仅返回天数的日期时间差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7669420/

相关文章:

python - 在 Wagtail 页面管理中对 DecimalField 使用逗号格式的数字

python - 使用 Python 保存 AutoCAD 文件 (.dwg)

java - 如何去除字符串中除第一个字符以外的所有非数字?

python - 使用插值标准化 Pandas 中的时间序列

Perl:如何漂亮地打印时间差(持续时间)

python - 如何将带分隔符的字符串拆分成一个集合?

python - 合并两个字典并保留 Python 中重复键的值

java - 如何在Java中用三重正斜杠替换正斜杠?

r - 如何在句子中添加删除的空格?

PHP 和 MySQL 格式化输出