尝试将时间字符串解析为时间对象,并获取与当前时间的时差。
以下是示例:
>>> 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)