猿问

来自字符串的日期时间对象,频率为 15 天

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


该函数应返回以下列表。


[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):


慕慕森
浏览 122回答 2
2回答

收到一只叮咚

正如您所说,将有两个步骤来实现:首先,将字符串日期转换为日期时间对象,其次,使用 timedelta 迭代接下来的 15 天,使用列表理解或简单循环。from datetime import datetime, timedeltamyDateStr = '20170817'# Parse the string and return a datetime object def getDateTime(date):    return datetime(int(date[:4]),int(date[4:6]),int(date[6:]))# Iterate over the timedelta added to the starting datedef days15(myDateStr):    return [getDateTime(myDateStr) + timedelta(days=x) for x in range(15)]
随时随地看视频慕课网APP

相关分类

Python
我要回答