python - 将字符串数组转换为日期时间数组
问题描述
如果我需要将字符串转换为日期对象,但日期的格式不正确,我该怎么做?
例如,如果我需要将'3/10/18'
或转换'11/7/18'
为日期以便将其附加到新数组中,我应该使用什么方法?
我试过datetime.strptime(string, '%m/%d/%Y')
了,但由于月份或日期在字符串中并不总是 2 位数字,因此它不会转换它。
解决方案
如文档中所述:
当与 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)]
推荐阅读
- html - Safari favicon 错误地渲染为白色背景
- python - 值错误: int() 的无效文字无效文字,基数为 10:3,5
- curl - Kafka Connect REST 请求中出现意外字符
- openshift - Openshift 路由与外部负载均衡器
- angularjs - 从 Angular js 升级到 Angular 8 的指令
- python - 修改二分查找功能
- python - Python Pandas Groupby NaN 在列中应该具有相同的值
- sql - 使用 sum 时避免使用 group by
- go - 在 Golang 切片中偏移零索引
- firebase - 在没有 onSnapshot React-Native 的情况下从 firebase 中提取图像