特定の形式で現在の日時を取得したい。これより短いものはありますか?
>>> import datetime
>>> datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
'2013-03-28 08:29:41'
いいえ、ありません。ただし、呼び出し全体を常に繰り返す必要はありません。例えば:
>>> import datetime
>>> now = datetime.datetime.now
>>> now().strftime('%Y-%m-%d %H:%M:%S')
'2013-03-28 08:29:41'
常に同じ形式が必要な場合は、それもラップできます。
import datetime
def now_string():
return datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
どこかの関数に入れるだけです
import datetime
def my_now():
return datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
いくつかのオプションの引数を使用して、より柔軟にすることができます
import datetime
def my_now(the_time=None, fmt='%Y-%m-%d %H:%M:%S'):
if the_time is None:
the_time = datetime.datetime.now()
return the_time.strftime(fmt)
それがあなたが望むすべてなら、そうしてください。しかし、そのようなハックなコードについて私を責めないでください:-)
>>> import datetime
>>> str(datetime.datetime.now())[:19]
'2013-03-28 15:57:31'
文字数 32 :-)
フォーマット文字列はデフォルトのフォーマットに近いため、マイクロ秒を取り除くだけで済みます。
import datetime
str(datetime.datetime.now().replace(microsecond = 0))