为什么strptime和strftime表现不同,你怎么办呢?

时间:2011-11-28 22:03:07

标签: python google-app-engine

我使用的是Python 2.5并在App Engine中运行,并使用类似于以下内容的代码进行分页:

NEXT_FORMAT = "%Y-%m-%d %H:%M:%S"

current = model.completed_on.strftime(NEXT_FORMAT)

completed_before = datetime.datetime.strptime(current, NEXT_FORMAT)

每隔一段时间strftime就会退出一个看起来像2011-11-24 05:13:54.355436的时间然后strptime会爆炸试图吃掉它

ValueError: unconverted data remains: .355436

那么,为什么如果你使用的格式说%S是秒作为十进制数是创建浮点数?它会发生,为什么不以同样的方式处理它呢?

1 个答案:

答案 0 :(得分:7)

将其更改为:

NEXT_FORMAT = "%Y-%m-%d %H:%M:%S.%f"

这也将转换微秒部分。

或者,如果你想剥去微秒,你可以在调用strptime之前使用replace。

current = current.replace(microsecond=0)