4

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
4

2 に答える 2

5

あなたの例では、次のように使用できます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.strptimedatetime の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'
于 2013-11-07T00:03:29.730 に答える
1

必要な指定子で文字列をフォーマットする必要があります

import time
import datetime
t = time.ctime()
f = datetime.datetime.strptime(t, '%a %b %d %H:%M:%S %Y')
print f                               #with no specifier
print f.strftime('%m/%d/%Y %H:%M:%S') #with your specifier
于 2013-11-07T00:08:39.717 に答える