繁体   English   中英

Python datetime.striptime错误-将时间字符串解析为时间对象

[英]Python datetime.striptime error - parse time string to time object

尝试将时间字符串解析为时间对象,并获取与当前时间的时差。

这是示例:

>>> user_reg_time = datetime.datetime.strptime("20091129060140", "%Y%M%d%H%m%S")
>>> user_reg_time = datetime.datetime.strptime("20140404134026", "%Y%M%d%H%m%S")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_strptime.py", line 328, in _strptime
    data_string[found.end():])
ValueError: unconverted data remains: 6

请注意,当时间字符串为20091129060140没有错误,但是当时间字符串为20140404134026时,出现上述错误。 除了日期以外,时间字符串(例如长度)没有什么不同。 这怎么可能。

问题是您已经翻转了%m和%M,它应该如下所示:

%Y%m%d%H%M%S

对彼此而言。

%m是月份(01-12), %M是分钟(00-59)

这是正确的代码:

user_reg_time = datetime.datetime.strptime("20091129060140", "%Y%m%d%H%M%S")
user_reg_time = datetime.datetime.strptime("20140404134026", "%Y%m%d%H%M%S")

使用python-dateutil的另一种方法。

In [1]: from dateutil import parser

In [2]: parser.parse('20091129060140')
Out[2]: datetime.datetime(2009, 11, 29, 6, 1, 40)

In [3]: parser.parse('20140404134026')                                                                            
Out[3]: datetime.datetime(2014, 4, 4, 13, 40, 26)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM