[英]How to add padding zeros to a datetime object in Python?
我有一个看起来像这样的文件:
London XXX Europe 2020 9 7 0 0 0 2 2020 9 7 0 11 35 2 57
Tanger XXX Africa 2020 9 7 0 29 54 2 2020 9 7 23 57 16 2 29
Doha XXX Asia 2020 9 7 0 57 23 2 2020 9 7 23 58 48 2 11
我正在尝试将索引3,4,5,6,7,8
与Year, Month, Day, Hour, Minute, Second.
我尝试对end_time
做同样的事情。 但是,我文件中的零似乎产生了一些奇怪的 output。
这是我的代码:
path = r'c:\data\EK\Desktop\Python Microsoft Visual Studio\Extra\test_datetime.txt'
with open(path, 'r') as input_file:
reader = csv.reader(input_file, delimiter='\t')
for row in reader:
start_time = (row[3] + row[4] + row[5] + row[6] + row[7] + row[8])
end_time = (row[10] + row[11] + row[12] + row[13] + row[14] + row[15])
start_time = datetime.datetime.strptime(start_time, "%Y%m%d%H%M%S")
end_time = datetime.datetime.strptime(end_time, "%Y%m%d%H%M%S")
print(start_time)
print(end_time)
这是我目前的 output:
2020-09-07 00:00:00
2020-09-07 01:13:05
2020-09-07 02:09:54
2020-09-07 23:57:16
2020-09-07 05:07:23
2020-09-07 23:58:48
这是我预期的 output:
2020-09-07 00:00:00
2020-09-07 00:11:35
2020-09-07 00:29:54
2020-09-07 23:57:16
2020-09-07 00:57:23
2020-09-07 23:58:48
问题是,当您连接诸如row[3] + row[4] + row[5] + row[6] + row[7] + row[8]
之类的字段时,所有个位字段都没有前导零,所以它们没有用strptime()
正确解析。
您可以使用格式化 function 的字符串来添加前导零,但首先没有理由使用strptime()
。 只需调用datetime.datetime()
直接从值创建 object。
start_time = datetime.datetime(*map(int, row[3:9]))
end_time = datetime.datetime(*map(int, row[10:16]))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.