来自字符串的Datetime对象,持续15天

时间:2018-08-22 12:33:01

标签: python

我正在尝试编写一个名为days15()的函数。该函数将传递一个名为“ myDateStr”的参数。 myDateStr是日期的字符串表示形式,格式为20170817(即YearMonthDay)。函数中的代码将根据字符串创建一个datetime对象,然后将创建一个长度为1天的timedelta对象。然后,它将使用列表推导生成一个15个datetime对象的列表,从传递给该函数的日期开始

该函数应返回以下列表。

[datetime.datetime(2017, 8, 17, 0, 0), datetime.datetime(2017, 8, 18, 0, 0), datetime.datetime(2017, 8, 19, 0, 0), datetime.datetime(2017, 8, 20, 0, 0), datetime.datetime(2017, 8, 21, 0, 0), datetime.datetime(2017, 8, 22, 0, 0), datetime.datetime(2017, 8, 23, 0, 0), datetime.datetime(2017, 8, 24, 0, 0), datetime.datetime(2017, 8, 25, 0, 0), datetime.datetime(2017, 8, 26, 0, 0), datetime.datetime(2017, 8, 27, 0, 0), datetime.datetime(2017, 8, 28, 0, 0), datetime.datetime(2017, 8, 29, 0, 0), datetime.datetime(2017, 8, 30, 0, 0), datetime.datetime(2017, 8, 31, 0, 0)]

我为代码而苦恼。我已经努力解决以下问题。请帮忙。谢谢

from datetime import datetime, timedelta
myDateStr = '20170817'
def days15(myDateStr):

2 个答案:

答案 0 :(得分:0)

正如您所说,将实现两个步骤:首先,将字符串date转换为datetime对象,其次,使用列表理解或简单循环,使用timedelta在接下来的15天进行迭代。

gateway.host.internal

答案 1 :(得分:0)

Pandas将帮助您将字符串转换为日期时间,因此首先需要导入它:

from datetime import datetime, timedelta
import pandas as pd

myDateStr = '20170817'

然后,您可以初始化一个空列表,稍后再添加:

datelist = []

然后编写一个函数:

def days15(myDateStr):
    #converting to datetime 
    date = pd.to_datetime(myDateStr)
    #loop to create 15 datetimes
    for i in range(15):
    newdate = date + timedelta(days=i)
    #adding new dates to the list
    datelist.append(newdate)

然后您可以调用函数并获得15个日期时间的列表:

 days15(myDateStr)