关于datetime.strptime()

时间:2012-12-24 11:58:21

标签: python

我在python中使用datetime相当新,我使用的是Python 2.7.3

在python控制台中:

>>>import datetime
>>>datetime.datetime.strptime("2012-3-12 10:10:10", "%Y-%m-%j %H:%M:%S")

结果如何?

datetime.datetime(2012, 1, 12, 10, 10, 10)

而不是

datetime.datetime(2012, 3, 12, 10, 10, 10)

2 个答案:

答案 0 :(得分:3)

因为您使用的是%j,这是“一年中的某一天”,因此它会让您失去日期时间。这有点像试图将汽车的方向盘同时转向两个方向 - 这是行不通的......

您想要%d代替:

>>> datetime.datetime.strptime("2012-03-12 10:10:10", "%Y-%m-%d %H:%M:%S")
datetime.datetime(2012, 3, 12, 10, 10, 10)

答案 1 :(得分:1)

来自documentation

的格式为%j
  

一年中的一天作为十进制数[001,366]。

并且一年中的第12天是1月12日。

改为使用%d

>>> datetime.datetime.strptime("2012-03-12 10:10:10", "%Y-%m-%d %H:%M:%S")
datetime.datetime(2012, 3, 12, 10, 10, 10)