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) |
| %p | AM、PM |
| %M | 分2桁 |
| %S | 秒2桁 |
西暦4桁と西暦2桁は大文字のYと大文字のyです。間違わないようにしましょう。
Python 掲載一覧
漢文家族には、下記のPythonの記事があります。
気になるところからチェックしてみてください。
【Pythonの基本】
第1回 Pythonとは?
第2回 基本文法
第3回 変数とデータ型
【文字列】
第4回 文字列
【文字列関数とメソッド】
第7回 文字列の長さを調べる:len関数
【辞書型】
第9回 辞書型
第10回 辞書型(要素の情報の取得・要素の検索・辞書型のコピー・リスト型から辞書型を作成)
【制御構文】
第12回 if文
第13回 match文
第14回 for文
【日付と時刻】
第15回 日付と時刻
第16回 文字の日付を日付型に変換する 今ここ
第17回 日付型の日付を文字型の日付に変換する
【その他】
第18回 バージョンの確認方法
プログラム学習に限界を感じていませんか?


