我不确定如何减去日期

时间:2019-01-02 20:36:21

标签: python-3.x

因此,在我的项目中,我试图计算一次股票交易,并且其中一个字段要求我减去日期04/15/2018(购买日期),04/27/2018(出售日期),但我没有确定如何进行减法。

我已经尝试过像2018年4月15日至2018年4月27日这样的减法,但是由于从逻辑上讲这并不合理,所以我不确定如何做到这一点。

3 个答案:

答案 0 :(得分:1)

将它们转换为日期,然后您可以简单地减去,请参见datetime.datetime.strptime(),例如:

In []:
from datetime import datetime
d1 = datetime.strptime('04/15/2018', '%m/%d/%Y')
d2 = datetime.strptime('04/27/2018', '%m/%d/%Y')
d1 - d2

Out[]:
datetime.timedelta(days=-12)`

答案 1 :(得分:0)

您将希望更深入地了解标准库中的datetime软件包。另一个有用的软件包是dateutil,它具有一些更高级别的解析功能。

您可以做类似的事情

start_date = "04/15/2018"  # note that this is a string
end_date = "04/27/2018"

from dateutil.parser import parse
start_dt = parse(start_date)
end_dt = parse(end_date)

time_delta = end_dt - start_dt

# get the time between the two dates in different units
days_between_dates = time_delta.days
seconds_between_dates = time_delta.total_seconds()

答案 2 :(得分:0)

从该答案Difference between two dates in Python借用datetime.datetime.strptime模块可以进行日期计算:

from datetime import datetime

def days_between(d1, d2):
    d1 = datetime.strptime(d1, '%m/%d/%Y')
    d2 = datetime.strptime(d2, '%m/%d/%Y')
    return abs((d2 - d1).days)  # ensures a positive return value

print(days_between('04/15/2018', '04/27/2018'))

输出:

12