我的列表中的值是与开始日期相比的天数增量。我需要将它们转换为日期格式(YYYYDD)。我正在使用以下代码:
import datetime
date = "20180330"
y = int(date[0:4])
m = int(date[4:6])
d = int(date[6:8])
starting_date = datetime.date(y, m, d)
tanor = map(lambda x: starting_date + datetime.timedelta(days=int(x))
这似乎不起作用。
答案 0 :(得分:2)
尝试
import datetime
date = "20180330"
date = datetime.datetime.strptime(date, "%Y%m%d")
list_of_days = [1,2,3]
l = [(date + datetime.timedelta(days=d)).strftime("%Y-%m-%d") for d in list_of_days]
print(l)
输出
['2018-03-31', '2018-04-01', '2018-04-02']
答案 1 :(得分:2)
这可能会帮助您:
import datetime
date = "20180330"
dates = ["20180330","20180430","20160130"]
# Timestamp
datesConverted = map(lambda x: pd.to_datetime(x),dates)
print(list(datesConverted))
# Datetime
datesConverted = map(lambda x: pd.to_datetime(x).date(),dates)
print(list(datesConverted))
我将您的字符串列表转换为日期时间或时间戳
列表答案 2 :(得分:2)
tanor = map(lambda x: starting_date + DT.timedelta(days=int(x))
您没有向map
传递任何内容,即:您没有向其提供增量列表。
请注意,如果您使用的是Python 3.x,则map
不会立即应用该操作。您将不得不遍历结果或将其传递给列表。
所以:
tanor = list(map(lambda x: starting_date + DT.timedelta(days=int(x)), my_deltas))