首页 > 解决方案 > 将字符串数组转换为日期时间数组

问题描述

如果我需要将字符串转换为日期对象,但日期的格式不正确,我该怎么做?

例如,如果我需要将'3/10/18'或转换'11/7/18'为日期以便将其附加到新数组中,我应该使用什么方法?

我试过datetime.strptime(string, '%m/%d/%Y')了,但由于月份或日期在字符串中并不总是 2 位数字,因此它不会转换它。

标签: pythondatetime

解决方案


文档中所述

当与 strptime() 方法一起使用时,前导零对于格式 %d、%m、%H、%I、%M、%S、%J、%U、%W 和 %V 是可选的。格式 %y 确实需要前导零

前导零对于格式%d%m. 问题是%Y这需要一整年。如果您想要两个字符的年份,请使用%y

from datetime import datetime

l =  ['3/10/18', '11/7/18']

[datetime.strptime(s, '%m/%d/%y') for s in l]
# [datetime.datetime(2018, 3, 10, 0, 0), datetime.datetime(2018, 11, 7, 0, 0)]

推荐阅读