我能够用time.strptime解析包含日期/时间的字符串
>>> import time
>>> time.strptime('30/03/09 16:31:32', '%d/%m/%y %H:%M:%S')
(2009, 3, 30, 16, 31, 32, 0, 89, -1)
如何解析包含毫秒的时间字符串?
>>> time.strptime('30/03/09 16:31:32.123', '%d/%m/%y %H:%M:%S')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.5/_strptime.py", line 333, in strptime
data_string[found.end():])
ValueError: unconverted data remains: .123
Python 2.6添加了新的strftime/strptime宏%f。文档中只提到了微秒,这有点误导人,但%f实际上解析秒的任何小数部分,最多有6位,这意味着它也适用于毫秒,甚至厘秒或分秒。
time.strptime('30/03/09 16:31:32.123', '%d/%m/%y %H:%M:%S.%f')
然而,时间。Struct_time实际上并不存储毫秒/微秒。你最好使用datetime,像这样:
>>> from datetime import datetime
>>> a = datetime.strptime('30/03/09 16:31:32.123', '%d/%m/%y %H:%M:%S.%f')
>>> a.microsecond
123000
如您所见,.123被正确地解释为123000微秒。
Python 2.6添加了新的strftime/strptime宏%f。文档中只提到了微秒,这有点误导人,但%f实际上解析秒的任何小数部分,最多有6位,这意味着它也适用于毫秒,甚至厘秒或分秒。
time.strptime('30/03/09 16:31:32.123', '%d/%m/%y %H:%M:%S.%f')
然而,时间。Struct_time实际上并不存储毫秒/微秒。你最好使用datetime,像这样:
>>> from datetime import datetime
>>> a = datetime.strptime('30/03/09 16:31:32.123', '%d/%m/%y %H:%M:%S.%f')
>>> a.microsecond
123000
如您所见,.123被正确地解释为123000微秒。