Python Datetime Strptime错误:' - '是格式为'%-m - % - d-%y%-H:%M:%S'的错误指令

时间:2016-12-16 19:37:26

标签: python datetime

我知道有类似的问题,但它们似乎与datetime交易(或不处理)时区的方式有关。

设置有点复杂,可能与问题无关,但我认为按原样包含代码很重要,所以有一点背景知识:

我有一个数组字典。这些阵列中的每一个代表同一个人的“尝试”,但是在不同时间发生。最终,我将会寻找最早的这些日期。这可能是一个迂回的解决方案,但我将所有日期转换为datetime对象,找到最早的,然后只使用该索引来取出第一次尝试:

以下是设置尝试日期时间数组的代码:

for key in duplicates_set.keys():
    attempt_dates = [datetime.strptime(attempt['Attempt Date'], "%-m-%-d-%y %-H:%M:%S") for attempt in duplicates_set[key]]

以下是原始日期字符串的格式:

12-5-2016 3:27:58 PM

我要回的是:

ValueError: '-' is a bad directive in format '%-m-%d-%y %-H:%M:%S'

我认为这是指在'm','d'和'H'之前放置的破折号,因为它们是非零填充的小数。为什么告诉我这个?

1 个答案:

答案 0 :(得分:8)

%-* - 跳过填充 - 是一个GNU libc扩展。它不是POSIX strftime的一部分,因此无法保证可以移植到时间格式化调用最终不受GNU的strftime C库函数支持的系统。

The Python datetime module documentation显式指定它支持的格式字符串,但未给出此扩展名。因此,虽然GNU日期和GNU strftime()支持此功能,但它在Python datetime中不可用。