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

boa*_*der 2 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)
Run Code Online (Sandbox Code Playgroud)

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

ValueError: unconverted data remains: .355436
Run Code Online (Sandbox Code Playgroud)

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

Chr*_*sse 7

把它改成这个:

NEXT_FORMAT = "%Y-%m-%d %H:%M:%S.%f"
Run Code Online (Sandbox Code Playgroud)

这也将转换微秒部分.

或者,如果要剥离微秒,可以在调用strptime之前使用replace.

current = current.replace(microsecond=0)
Run Code Online (Sandbox Code Playgroud)