有没有什么直接的方法可以将 ctime 值转换为 '%m/%d/%Y %H:%M:%S' 格式?

例如,将“Wed Nov 6 15:43:54 2013”​​转换为“11/06/2013 15:43:54”

我尝试了以下但没有给我我想要的格式,即“11/06/2013 15:43:54”:

>>> t = time.ctime()
>>> f = datetime.datetime.strptime(t, '%a %b %d %H:%M:%S %Y')
>>> print f
2013-11-06 15:43:54

但是如果我直接将它传递给 time.strftime,它将需要 9 项序列:
>>> n = time.strftime(t, '%D %H:%M:%S')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: argument must be 9-item sequence, not str

最佳答案

在您的示例中,您可以只使用 datetime.now :

from datetime import datetime

d = datetime.now()
d.strftime('%m/%d/%Y %H:%M:%S')
Out[7]: '11/06/2013 18:59:38'

但。如果您从其他地方接收 ctime 样式字符串,请使用 datetime.strptime 对其进行解析,然后使用日期时间的 strftime (而不是 time )以您想要的方式对其进行格式化。
from datetime import datetime
import time
d = datetime.strptime(time.ctime(),"%a %b %d %H:%M:%S %Y")

d.strftime('%m/%d/%Y %H:%M:%S')
Out[9]: '11/06/2013 19:01:11'

关于Python - 如何将 ctime 转换为 '%m/%d/%Y %H:%M:%S',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19825330/

10-11 23:22