即使bash识别它,日期时间模式在python中也不匹配

时间:2016-04-14 20:41:02

标签: python datetime

我有以下代码(基于http://strftime.org/):

try:
    datetime.datetime.strptime("Apr 14, 2016 9", '%b %d, %Y %-I')
    print "matched date format"
except ValueError:
    print "did NOT match date format"

以上版画:

$ python parse_log.py
did NOT match date format

但是bash会识别这种日期格式:

$ date  '+%b %d, %Y %-I'
Apr 14, 2016 1

我错过了什么?

似乎%-I是问题所在,因为Python匹配的日期没有%-I部分:

try:
    datetime.datetime.strptime("Apr 14, 2016 ", '%b %d, %Y ')
    print "matched date format"
except ValueError:
    print "did NOT match date format"

输出:

$ python parse_log.py
matched date format

我在python 2.6.6上。

我需要匹配的实际模式使用12小时制,并且是:

datetime.datetime.strptime("Apr 14, 2016 9:59:54", '%b %d, %Y %-I:%M:%S')

1 个答案:

答案 0 :(得分:5)

您需要移除strptime-

 '%b %d, %Y %I:%M:%S'

In [17]: print  datetime.datetime.strptime("Apr 14, 2016 9:59:54", '%b %d, %Y %I:%M:%S')
2016-04-14 09:59:54

-I仅用于strftime

In [15]: print datetime.datetime.strptime("Apr 14, 2016 9:59:54", '%b %d, %Y %I:%M:%S').strftime('%b %d, %Y %-I:%M:%S')
Apr 14, 2016 9:59:54