Pythonで日付や時刻を扱う際には、datetimeモジュールが非常に便利です。
しかし、初心者にとってはその使い方が少し難しかったり、今これから使い方を知ろうとしている人もいるでしょう。
そこで、この記事ではPythonのdatetimeモジュールを使って日付だけを取得し、文字列に変換する方法をわかりやすく解説します。
datetimeオブジェクトから日付だけを取得する方法
Pythonのdatetimeモジュールを使って、日付と時刻を含むdatetimeオブジェクトから日付だけを取得する方法を紹介します。
以下の3つの方法を説明します。
date()メソッドを使った方法
datetimeオブジェクトには、 date()
メソッドが用意されています。
このメソッドを使うと、datetimeオブジェクトから日付部分だけを取り出すことができます。
from datetime import datetime
# 現在の日時を取得
now = datetime.now()
# 日付だけを取得
date_only = now.date()
print(date_only)
2022-01-01
この方法では、取得した日付はdate
オブジェクトとして返されます。
文字列に変換するには、 strftime()
メソッドを使います。
strftime()メソッドを使った方法
strftime()
メソッドを使うと、datetimeオブジェクトを指定したフォーマットの文字列に変換できます。
日付だけを取得して文字列に変換する場合は、以下のように書きます。
from datetime import datetime
# 現在の日時を取得
now = datetime.now()
# 日付だけを取得して文字列に変換
date_str = now.strftime('%Y-%m-%d')
print(date_str)
'2022-01-01'
strftime()
メソッドでは、%Y
が年、%m
が月、%d
が日に対応しています。
これらを組み合わせて、日付のフォーマットを自由に指定できます。
各属性を利用した方法
datetimeオブジェクトには、year
、month
、day
といった属性があります。
これらの属性を使って、日付だけを取得することもできます。
from datetime import datetime
# 現在の日時を取得
now = datetime.now()
# 日付だけを取得
year = now.year
month = now.month
day = now.day
print(year, month, day)
2022 1 1
この方法では、取得した日付は整数として返されます。
文字列に変換するには、 str()
関数や文字列のフォーマット機能を使います。
date_str = f"{year}-{month:02d}-{day:02d}"
print(date_str)
'2022-01-01'
以上の方法を使って、datetimeオブジェクトから日付だけを取得し、文字列に変換することができます。
適切な方法を選んで、日付の取得や変換を行ってください。