将日期时间对象列表转换为字符串

时间:2020-05-15 12:52:42

标签: python datetime

我想将日期时间对象列表转换为字符串,但对如何完成此任务感到困惑。

sed -i "s/__CRM_SCHEMA_OWNER__/$CRM_SCHEMA_OWNER/g" /mydata/01_create_crm.sql

这将产生:hm=dt.date(2013,1,2) t=hm.strftime('%m/%d/%Y') t

但是,当我将变量更改为日期列表时,则会引发错误。

'01/02/2013'

错误:hm=[dt.date(2013,1,1), dt.date(2013,1,2)] t=hm.strftime('%m/%d/%Y') t

我是否需要使用某种list indices must be integers or slices, not datetime.date循环来完成此任务?

2 个答案:

答案 0 :(得分:2)

您需要遍历列表以将每个日期转换为string

>>> t = [d.strftime('%m/%d/%Y') for d in hm]

或者,如果您希望将所有日期都转换为由其他string串联而成的字符串的string(例如,),也可以执行以下操作:

>>> s = ', '.join(t)

答案 1 :(得分:1)

如果您想通过“常规” for循环来解决此问题,可以使用:

import datetime as dt

hm = [dt.date(2013, 1, 1), dt.date(2013, 1, 2)]
t = []

for date in hm:
    t.append(date.strftime('%m/%d/%Y'))

否则dcg发布的答案将是一种更干净,更好的方法。