你有一个U+200E 从左到右标记您输入的字符。它是非印刷排版指令,指示显示文本的任何内容切换到从左到右模式。当打印到已经设置为从左到右显示的控制台(例如西方世界的绝大多数终端)时,该字符串与没有标记的打印看起来没有任何不同。
由于它不是日期的一部分,您可以删除此类字符:
datetime.strptime(dateRegistered.strip('\u200e'), '%m-%d-%Y%I:%M %p')
或者如果它始终存在,请将其显式添加到您正在解析的格式中,就像-
and :
and
空格字符已经是您的格式的一部分:
datetime.strptime(dateRegistered, '\u200e%m-%d-%Y%I:%M %p')
Demo:
>>> from datetime import datetime
>>> dateRegistered = '\u200e07-30-200702:38 PM'
>>> datetime.strptime(dateRegistered.strip('\u200e'), '%m-%d-%Y%I:%M %p')
datetime.datetime(2007, 7, 30, 14, 38)
>>> datetime.strptime(dateRegistered, '\u200e%m-%d-%Y%I:%M %p')
datetime.datetime(2007, 7, 30, 14, 38)