将字符串更改为datetime对象

时间:2012-08-21 15:42:21

标签: python datetime

time_list是一个元组列表,每个元组中有一个整数和两个字符串,这两个字符串是日期格式,但我想将它们更改为实际的日期时间对象。这就是我的所作所为:

for row in time_list:
    row[1] = datetime.strptime(row[1], "%Y-%m-%d %H:%M:%S.%5N")
    row[2] = datetime.strptime(row[2], "%Y-%m-%d %H:%M:%S.%5N")
    delta = row[2] - row[1]
    timedelta.append(delta)

当我删除%5N时出现了不同的错误,但这并不是我尝试做的事情,所以我不会为此烦恼。我知道%5N导致了这个问题。我得到的错误是:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\user\Programs\time_database.py", line 50, in search2
    row[1] = datetime.strptime(row[1], "%Y-%m-%d%t%H:%M:%S.%5N")
  File "C:\Python27\lib\_strptime.py", line 317, in _strptime
    (bad_directive, format))
ValueError: '5' is a bad directive in format '%Y-%m-%d %H:%M:%S.%5N'

1 个答案:

答案 0 :(得分:3)

Python中使用的%5N方法不支持

strftime。请改用%f (microseconds)

datetime.strptime(row[1], "%Y-%m-%d %H:%M:%S.%f")