【发布时间】:2020-07-25 23:40:03
【问题描述】:
如何使用 Python 计算 2006/09/21 和 2008-12-27 之间的天数?注意:两个日期的格式不同。
【问题讨论】:
标签: python python-3.x pandas
如何使用 Python 计算 2006/09/21 和 2008-12-27 之间的天数?注意:两个日期的格式不同。
【问题讨论】:
标签: python python-3.x pandas
您可以使用标准库中的datetime:
import datetime
dt1 = datetime.datetime.strptime("2008-12-27", "%Y-%m-%d")
dt2 = datetime.datetime.strptime("2006/09/21", "%Y/%m/%d")
(dt1 - dt2).days # 828
【讨论】:
由于问题已在其中标记pandas
In [30]: import pandas as pd
In [31]: d1 = pd.to_datetime("2006/09/21", format="%Y-%m-%d")
In [32]: d2 = pd.to_datetime("2008-12-27", format="%Y/%m/%d")
In [33]: (d2 - d1).days
Out[33]: 828
【讨论】:
我建议使用datetime.strptime() 函数将这些字符串中的每一个转换为日期时间对象。试试下面的代码:
import datetime
d1 = '2006/09/21'
d2 = '2008-12-27'
#convert strings to datetime objects
d1_converted = datetime.datetime.strptime(d1,'%Y/%m/%d')
d2_converted = datetime.datetime.strptime(d2,'%Y-%m-%d')
#difference between two dates in days
(d2_converted - d1_converted).days #output is '828'
阅读文档以获取有关格式化其他字符串的更多信息:https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior
【讨论】: