Python で DateTime をミリ秒単位の文字列に変換する

  1. strftime() メソッドを使って DateTime を文字列に変換する
  2. isoformat() メソッドを使用して DateTime を文字列にフォーマットする
  3. 関数 str() を用いて DateTime を文字列にフォーマットする

Python の datetime モジュールを使用すると、簡単に操作したり、異なるフォーマットに変換したりできる日付と時刻のオブジェクトを作成することができます。

このチュートリアルでは、datetime オブジェクトをミリ秒を含む文字列に変換する方法を説明します。

strftime() メソッドを使って DateTime を文字列に変換する

strftime() メソッドは引数に文字列として指定されたフォーマットに基づいて文字列を返します。

from datetime import datetime

date_s = (datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f'))

print(date_s)

出力:

2021-01-23 02:54:59.963001
注意

datetime をインポートするだけならば、現在の時刻を取得するには datetime.datetime.now() を使用しなければならません。

文字列の書式は %Y-%m-%d %H:%M:%S.%f です。now() メソッドは現在の日付と時刻の datetime.datetime オブジェクトを返します。最終的な出力にはマイクロ秒が含まれていますが、これは簡単にミリ秒に切り捨てられます。例えば、

from datetime import datetime

date_s = (datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3])

print(date_s)

出力:

2021-01-23 03:00:29.052

isoformat() メソッドを使用して DateTime を文字列にフォーマットする

datetime クラスの isoformat() メソッドは、ISO 8601 形式の日付を表す文字列を返します。日付と時刻を区切る文字は sep パラメータと timespace パラメータで指定し、時間成分をミリ秒とすることができます。

from datetime import datetime

date_s = datetime.now().isoformat(sep=' ', timespec='milliseconds')

print(date_s)

出力:

2021-01-23 03:15:35.322

関数 str() を用いて DateTime を文字列にフォーマットする

関数 str()datetime オブジェクトを直接渡すことで、標準の日付と時刻の形式で文字列を取得することができます。この方法は上記のメソッドよりも高速ですが、文字列の形式を指定することもできます。

また、最終的な結果をミリ秒単位で取得するために、文字列から下 3 桁を削除することもできます。

from datetime import datetime

t = datetime.now()
date_s = str(t)[:-3]

print(date_s)

出力:

2021-01-23 05:56:26.266

関連記事 - Python DateTime

  • Python で現在の年を取得する