Tom*_*ers 1 python datetime strptime
我试图从txt文件中获取日期时间.在该文件中的时间呈现[与]它周围.
我知道第一行总是一个时间戳.但是当我尝试使用strptime获取日期时间时,我收到一条错误消息.
我搜索了其他解决方案.但似乎没有发现任何符合我的错误.
码:
FileYSI = open(FilenameYSI,'r')
TimeStampYSI = [next(FileYSI)for x in xrange(1)]
print TimeStampYSI[0]
if TimeStampYSI[0][0] == '['
TimeFP = time.strptime(TimeStampYSI[0],'[%y-%m-%d,%H:%M:%S.%f]\n')
Run Code Online (Sandbox Code Playgroud)
错误:
[2015-09-22,08:10:00.600000]
Traceback (most recent call last):
File "C:/Users/brondert/Documents/realtime_data_aquadrone/trunk/src/MergeLogs.py", line 129, in <module>
MergeLogs("test")
File "C:/Users/brondert/Documents/realtime_data_aquadrone/trunk/src/MergeLogs.py", line 92, in MergeLogs
TimeFP = time.strptime(TimeStampYSI[0],'[%y-%m-%d,%H:%M:%S.600000]\n')
File "C:\Python27\lib\_strptime.py", line 467, in _strptime_time
return _strptime(data_string, format)[0]
File "C:\Python27\lib\_strptime.py", line 325, in _strptime
(data_string, format))
ValueError: time data '[2015-09-22,08:10:00.600000]\n' does not match format '[%y-%m-%d,%H:%M:%S.600000]\n'
Run Code Online (Sandbox Code Playgroud)
4位数年份的格式是%Y(大写Y)不是%y ,你应该使用它,例子 -
TimeFP = time.strptime(TimeStampYSI[0],'[%Y-%m-%d,%H:%M:%S.%f]\n')
Run Code Online (Sandbox Code Playgroud)
演示 -
>>> import time
>>> time.strptime('[2015-09-22,08:10:00.600000]\n','[%Y-%m-%d,%H:%M:%S.%f]\n')
time.struct_time(tm_year=2015, tm_mon=9, tm_mday=22, tm_hour=8, tm_min=10, tm_sec=0, tm_wday=1, tm_yday=265, tm_isdst=-1)
Run Code Online (Sandbox Code Playgroud)
该%y(小y)格式是2位数的年份.
另一件事,你当前正在使用time模块,你会得到一个struct_time结果strptime,但如果你想datetime,你应该使用该datetime模块.示例 -
import datetime
datetime.datetime.strptime(TimeStampYSI[0],'[%Y-%m-%d,%H:%M:%S.%f]\n')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
96 次 |
| 最近记录: |