python日期时间字符串转换为时间格式

python日期时间字符串转换为时间格式,python,datetime,time,format,Python,Datetime,Time,Format,我正在将时间从数据帧转换为datetime.time格式。 原始时间格式如下所示: 420, 441, 31, 158 像这样的。所以数据中没有秒,只有小时和分钟 我编写了一个代码,将该sting转换为datetime.time格式 time = datetime.strptime(str(time, '%H%M').time() 它可以正常工作,但是在分析数据的过程中,当我应用代码时,我意识到了一些错误 例如,最初记录的时间是01:58,但在数据帧中,它保存的格式类似于158。当我应用代码时

我正在将时间从数据帧转换为datetime.time格式。 原始时间格式如下所示:

420, 441, 31, 158

像这样的。所以数据中没有秒,只有小时和分钟

我编写了一个代码,将该sting转换为datetime.time格式

time = datetime.strptime(str(time, '%H%M').time()
它可以正常工作,但是在分析数据的过程中,当我应用代码时,我意识到了一些错误

例如,最初记录的时间是01:58,但在数据帧中,它保存的格式类似于158。当我应用代码时,它将时间转换为15:08,这与原始文档相比是不正确的

但问题是01:58和15:08都会将表单保存在数据帧threfore 158中的相同值中

那么,如何处理这个问题呢?
现在似乎没有解决方案,只是原始文档必须以不同的时间格式保存。

这是一种使用
str.zfill
的方法,假设您有4位数字

Ex:

import datetime

data = ["420", "441", "31", "158"]

for time in data:
    print(datetime.datetime.strptime(time.zfill(4), '%H%M').time())
04:20:00
04:41:00
00:31:00
01:58:00
输出:

import datetime

data = ["420", "441", "31", "158"]

for time in data:
    print(datetime.datetime.strptime(time.zfill(4), '%H%M').time())
04:20:00
04:41:00
00:31:00
01:58:00
导入时间
测试=[4204413158]
string=str(测试[2])
如果len(string)time.struct_time(tm_year=1900,tm_mon=1,tm_mday=1,tm_hour=0,tm_min=31,tm_sec=0,tm_wday=0,tm_yday=1,tm_isdst=-1)
打印(aa[3])-->0
打印(aa[4])-->31
打印(类型(aa))-->

您必须首先解决输入数据不明确的问题;如果158既可以是15:08也可以是1:58,那么什么都帮不了你。我不认为这个问题能够得到回答——首先,你必须找出解释输入数据的逻辑规则;当您可以判断111是1:11还是11:10时-只有这样您才能开始实现转换-已经回答的任何一个都可能工作-取决于输入数据,并且它的111是否正确?是1:11还是11:10?@Drako。这是一个有效的方案。OP必须确认这一点您的代码很好-需求未知-因此-您的代码可能工作:)也可能不工作:)为什么需要
zfill()