API接收格式错误的ISO 8601时间戳问题排查求助
API接收格式错误的ISO 8601时间戳问题排查求助
大家好,我最近碰到一个挺诡异的问题,想请各位帮忙分析下:我开发了iOS和Android两款APP,用户在APP里通过日期选择器选定时间后,会把格式化后的时间戳传到Python后端,但今天突然收到了ValueError,提示ISO格式无效,实在搞不懂哪里出问题了,先把相关代码和错误信息贴出来:
客户端代码
- Android端时间格式化与请求代码:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); String formattedDate = simpleDateFormat.format(date); URL url = new URL("https://example.com/api/test?distance=" + distance + "&date=" + formattedDate);
- iOS端时间格式化与请求代码:
let formatter = DateFormatter() formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" let formattedDate = formatter.string(from: date) let url = URL(string: "https://example.com/api/test?distance=\(distance)&date=\(formattedDate)")!
后端处理代码
Python后端解析时间的逻辑:
date = request.GET.get('date', None) if date: journey_date = datetime.fromisoformat(date)
出现的错误信息
ValueError at /api/test/
Invalid isoformat...
我按照标准的ISO 8601格式(带毫秒和Z时区标识)来格式化时间的,之前一直正常,突然就出现这个错误了,有没有大佬能指点下可能的原因?比如是不是客户端某些特殊场景下格式化出了问题?或者后端解析的方式有没有潜在的坑?
备注:内容来源于stack exchange,提问作者alstr
相关产品推荐
相关产品推荐

