考虑以下示例:
from datetime import datetime
FMT = "%Y-%m-%dT%H:%M:%S"
original_date = datetime(1,1,1)
s = original_date.strftime(FMT) # This is '1-01-01T00:00:00'
当我现在尝试用我最初序列化它的格式将该字符串解析回datetime时,一个ValueError
被抛出:
ValueError: time data '1-01-01T00:00:00' does not match format '%Y-%m-%dT%H:%M:%S'
然而
datetime.strptime('0001-01-01T00:00:00', FMT)
按预期工作。
我本以为strptime
能够处理strftime
产生的任何东西。我一直认为这些函数是相反的。在
为什么original_date.strftime(FMT)
不会导致零填充年?这种不一致有什么原因吗?在
%Y
的结果在不同平台上不一致。在macosx上它将返回0001
,但在Linux上它返回1
。在在Linux上,您可以使用
%4Y
生成0001
作为年值。在这是一个已知问题:https://bugs.python.org/issue13305。在
strftime()
和{相关问题 更多 >
编程相关推荐