Pythonで日付を書式を指定して文字列に変換する

日付や時刻(datetimeオブジェクト)をprintメソッドなどで出力させると、マイクロ秒が0のときに省略されたりします。それでは困りますので、書式を決めて文字列に変換してみます。

逆に、日付や時刻の文字列からdatetimeオブジェクトを作る方法は、 別の投稿 を参照してください。

目次

  1. datetimeオブジェクトを文字列に変換する方法
  2. 変換実施例

datetimeオブジェクトを文字列に変換する方法

datetimeオブジェクト(dateオブジェクト、timeオブジェクト)のstrftimeメソッドは、日付や時刻のオブジェクトを文字列に変換します。その際、書式を指定できます。

S = datetime.datetime.strftime(D, f)
S = datetime.date.strftime(D, f)
S = datetime.time.strftime(D, f)

変数

内容

D

datetimeオブジェクト

f

変換する書式を示す文字列

S

変換結果の文字列

1つめのdatetimeはモジュールを示すものです。

書式を指定する文字列に使われる主な文字です。

書式

内容

%Y

年(0000~9999)

%y

年(00~99)

%m

月(01~12)

%d

日にち(01~31)

%H

時(00~12)

%M

分(00~59)

%S

秒(00~59)

%f

マイクロ秒(000000~999999)

変換実施例

試してみましょう。

>>> import datetime

>>> D = datetime.datetime(year=2018,month=2,day=3,hour=4,minute=5,second=6,microsecond=000000)
>>> D
datetime.datetime(2018, 2, 3, 4, 5, 6)
>>> print(D)
2018-02-03 04:05:06

>>> S = datetime.datetime.strftime(D, '%Y-%m-%d %H:%M:%S.%f')
>>> S
'2018-02-03 04:05:06.000000'
>>> print(S)
2018-02-03 04:05:06.000000

マイクロ秒が0のときに、datetimeオブジェクトをprintメソッドでそのまま出力すると0マイクロ秒が省略されてますが、書式を指定すると、マイクロ秒が0の場合でも0として出力されますね。

公開日

広告