Python中使用datetime.strptime修改日期时间格式问题
解决日期格式转换问题
你这是把日期解析和格式化的步骤搞混啦!datetime.strptime()是用来把字符串解析成datetime对象的,而要得到你想要的m/d/y h:m:s格式(也就是你例子里的01/06/2019 12:43:00),得用strftime()方法把datetime对象重新转成指定格式的字符串才行。
修正后的代码示例
from datetime import datetime original_date = '1/6/2019 1243' # 第一步:把原始字符串解析成datetime对象 date_obj = datetime.strptime(original_date, '%d/%m/%Y %H%M') # 第二步:将datetime对象格式化为你需要的字符串格式 new_date = date_obj.strftime('%d/%m/%Y %H:%M:%S') print(new_date) # 输出: '01/06/2019 12:43:00'
关键细节说明
strptime():负责把杂乱的字符串转成标准的datetime对象,你之前看到的2019-06-01 12:43:00其实是datetime对象的默认打印格式,不是最终的字符串输出。strftime():按照你给的格式规则,把datetime对象转换成自定义字符串。这里用到的格式符对应:%d:补零的两位日期(比如01、06)%m:补零的两位月份(比如06)%Y:四位完整年份(比如2019)%H:24小时制的补零小时(比如12)%M:补零的分钟(比如43)%S:补零的秒数(比如00)
适配Python→CSV→SQLite3的流转
- 写入CSV时,直接把
new_date这个字符串写入列即可,CSV会以文本形式保存。 - 写入SQLite3的TEXT字段时,直接插入这个格式化后的字符串就没问题,SQLite的TEXT类型完全支持存储这种日期格式。
内容的提问来源于stack exchange,提问作者JNix
相关产品推荐
相关产品推荐

