【Python】文字の日付を日付型に変換する

アイキャッチ画像

Pythonのプログラミングで、日付変換で苦労することが多いので、記事にします。

この記事では、文字列の日付を日付型に変換する方法を解説します。

日付型の日付を文字列に変換する方法は、別記事を参照してください。

目次

文字列の日付型変換

Pythonで文字列の日付を日付型に変換するには、strptime()関数を使います。

この関数は、文字列を指定した書式に従って日付型オブジェクトに変換します。

文字列の日付を日付型に変換する①

入力する文字列の日付のみの場合は、以下のようにして変換します。

import datetime
from datetime import date

str_date = '2023-03-01'
tdatetime = datetime.datetime.strptime(str_date, '%Y-%m-%d')
print(tdatetime) # 2023-03-01 00:00:00

tdate = date(tdatetime.year, tdatetime.month, tdatetime.day)
print(tdate) # 2023-03-01
print(type(tdate)) # <class 'datetime.date'>

文字列の「str_date」を「datetime.datetime.strptime」で日付変換すると「日付と時間」になります。

入力する文字列「str_date」の日付のフォーマットは「’2023-03-01’」になっているので、日付変換時の日付フォーマットを「’%Y-%m-%d’」にしていることに注意をしてください

「datetime.datetime.strptime」で日付変換されたされたデータを、date関数で、年+月+日に分解して、日付のみの日付型「tdate」を作成しています。
日付型は、type関数で確認できます。

入力された文字列の日付のフォーマットが「’20230301’」の場合は、以下のようにします。

import datetime
from datetime import date

str_date = '20230301'
tdatetime = datetime.datetime.strptime(str_date, '%Y%m%d')
print(tdatetime) # 2023-03-01 00:00:00

tdate = date(tdatetime.year, tdatetime.month, tdatetime.day)
print(tdate) # 2023-03-01
print(type(tdate)) # <class 'datetime.date'>

入力された文字列の日付のフォーマットに合わせて、datetime.datetime.strptimeの日付フォーマットを「’%Y%m%d’」にすることで、正常に変換することができます。

どうように、入力する文字列の日付が「’2023/03/01’」の場合は、datetime.datetime.strptimeの日付フォーマットを「’%Y/%m/%d’」にすることで、正常に変換できます。

文字列の日付を日付型に変換する②

入力する文字列の日付と時間がある場合は、以下のようにして変換します。

import datetime
from datetime import date

str_dateTime = '2023-01-08 13:49:37'
tdatetime = datetime.datetime.strptime(str_dateTime, '%Y-%m-%d %H:%M:%S')
print(tdatetime) # 2023-01-08 13:49:37

tdate = date(tdatetime.year, tdatetime.month, tdatetime.day)
print(tdate) # 2023-01-08
print(type(tdate)) # <class 'datetime.date'>

日付変換のdatetime.datetime.strptimeの日付フォーマットを「’%Y-%m-%d %H:%M:%S’」にすることで、正常に変換することができます。

日付フォーマット

最後に日付で使用するフォーマットの解説をします。

書式説明
%Y西暦4桁(2023)
%y西暦2桁(23)
%m月2桁(01、12)
%d日2桁(01、31)
%H時 24時間表記(01、23)
%I時 12時間表記(01、11)
%pAM、PM
%M分2桁
%S秒2桁

西暦4桁と西暦2桁は大文字のYと大文字のyです。間違わないようにしましょう。

Python 掲載一覧

漢文家族には、下記のPythonの記事があります。

気になるところからチェックしてみてください。

プログラム学習に限界を感じていませんか?

よかったらシェアしてね!
  • URLをコピーしました!
目次