Pythonで日付を書式を指定して文字列に変換する
日付や時刻(datetimeオブジェクト)をprintメソッドなどで出力させると、マイクロ秒が0のときに省略されたりします。それでは困りますので、書式を決めて文字列に変換してみます。
逆に、日付や時刻の文字列からdatetimeオブジェクトを作る方法は、 別の投稿 を参照してください。
目次
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として出力されますね。
公開日
広告