Python中字符串转datetime失败,请求技术帮助
解决日期字符串转换失败的问题
问题根源
- 读取的字符串带多余单引号:文件内容是
'2023-12-03 00:00',读取后字符串包含首尾单引号,导致格式匹配失败。 - 格式串误用重复字符:错误信息显示你实际使用了
%YYYY-%mm-%dd %HH:%MM这种错误格式——正确的格式符是单个字母,比如%Y代表4位年份,不能重复书写。
修正代码
import time from datetime import datetime, timedelta # 读取并清理字符串:去掉空白和首尾单引号 with open('你的文件名.txt', 'r') as flast: last_update_str = flast.readlines()[-1].strip().strip("'") # 正确的日期格式串 dateformat = "%Y-%m-%d %H:%M" # 转换为datetime对象(支持直接和timedelta运算) last_update = datetime.strptime(last_update_str, dateformat) next_run_date = last_update - timedelta(days=2) print(next_run_date)
关键说明
strip("'"):专门去除字符串首尾的单引号,让日期内容变成纯2023-12-03 00:00格式。- 格式串必须用单个格式符:比如
%Y(4位年)、%m(2位月)、%d(2位日)、%H(24小时制)、%M(分钟),不能重复写字母。 - 用
datetime.strptime替代time.strptime:前者返回的datetime对象可以直接和timedelta做减法运算,后者返回的struct_time不支持该操作。
内容的提问来源于stack exchange,提问作者Priyank Shukla
相关产品推荐
相关产品推荐

