我想将日期时间对象列表转换为字符串,但对如何完成此任务感到困惑。
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
循环来完成此任务?
答案 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发布的答案将是一种更干净,更好的方法。