我知道有类似的问题,但它们似乎与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'之前放置的破折号,因为它们是非零填充的小数。为什么告诉我这个?
答案 0 :(得分:8)
%-*
- 跳过填充 - 是一个GNU libc扩展。它不是POSIX strftime的一部分,因此无法保证可以移植到时间格式化调用最终不受GNU的strftime
C库函数支持的系统。
The Python datetime
module documentation显式指定它支持的格式字符串,但未给出此扩展名。因此,虽然GNU日期和GNU strftime()
支持此功能,但它在Python datetime
中不可用。