2016-04-14 60 views
4

的:日期时间模式没有在python匹配我有下面的代码(基于<a href="http://strftime.org/" rel="nofollow">http://strftime.org/</a>)

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 

然而庆典认识到这一日期格式:

$ 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 

我对蟒蛇2.6.6 。

实际的模式我需要匹配采用12小时制是:

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

回答

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 
+1

'-I' in bash is to解析非零填充值,但'strptime'将解析,不管零填充,按照这个答案:http://stackoverflow.com/questions/25279993/parsing-non-zero-padded-timestamps-in-python –

相关问题