Pythonのdatetimeモジュールの基本的な使い方
Pythonでは、日付や時間を扱うためにdatetimeモジュールを使用します。datetimeモジュールには、date、time、datetimeの3つのクラスがあります。それぞれのクラスは、日付、時間、日時を表します。
import datetime today = datetime.date.today() print(today) now = datetime.datetime.now() print(now)
上記のコードでは、dateクラスのtoday()メソッドを使用して今日の日付を取得し、datetimeクラスのnow()メソッドを使用して現在の日時を取得しています。
年月日のフォーマット方法(基本)
datetimeモジュールを使用して取得した日付や時間を、自分が表示したい形式にフォーマットすることができます。基本的なフォーマット方法は以下の通りです。
| コード | 説明 | 例 |
|---|---|---|
| %Y | 年(4桁) | 2021 |
| %m | 月(2桁) | 09 |
| %d | 日(2桁) | 22 |
これらのコードを、日付や時間を表す文字列に含めることで、指定した形式で表示することができます。
import datetime
today = datetime.date.today()
print(today.strftime('%Y年%m月%d日'))
now = datetime.datetime.now()
print(now.strftime('%Y/%m/%d %H:%M:%S'))
上記のコードでは、strftime()メソッドを使用して、日付や時間を指定した形式で表示しています。
年月日のフォーマット方法(高度)
基本的なフォーマット方法に加えて、高度なフォーマット方法もあります。代表的なものを以下に示します。
| コード | 説明 | 例 |
|---|---|---|
| %a | 曜日(短縮形) | Mon |
| %A | 曜日(完全形) | Monday |
| %b | 月(短縮形) | Sep |
| %B | 月(完全形) | September |
| %c | ローカルの日付と時間 | Tue Sep 22 13:25:53 2021 |
| %j | 年間通算日 | 265 |
| %U | 年間通算週(日曜始まり) | 38 |
| %W | 年間通算週(月曜始まり) | 39 |
| %x | ローカルの日付 | 09/22/21 |
| %X | ローカルの時間 | 13:25:53 |
これらのコードを、日付や時間を表す文字列に含めることで、指定した形式で表示することができます。
import datetime
today = datetime.date.today()
print(today.strftime('%Y年%m月%d日(%a)'))
now = datetime.datetime.now()
print(now.strftime('%Y/%m/%d %H:%M:%S(%A)'))
上記のコードでは、strftime()メソッドを使用して、日付や時間を指定した形式で表示しています。
実践!日付操作を活用したプログラム例
datetimeモジュールを使用して、日付を操作することができます。以下に、実際に日付操作を活用したプログラム例を示します。
生まれてから何日経ったかを計算するプログラム
import datetime
birthday = datetime.date(1995, 1, 1)
today = datetime.date.today()
days = (today - birthday).days
print('生まれてから{}日経ちました。'.format(days))
上記のプログラムでは、1995年1月1日の誕生日から今日までの日数を計算し、表示しています。
Pythonのstrftimeメソッドとは
strftime()メソッドは、datetimeオブジェクトを文字列に変換する際に使用されるメソッドです。上記の例で使用したstrftime()メソッドは、datetimeオブジェクトを指定した形式の文字列に変換するために使用されました。
まとめ
Pythonで日付や時間を扱うためには、datetimeモジュールを使用します。datetimeモジュールには、date、time、datetimeの3つのクラスがあります。それぞれのクラスは、日付、時間、日時を表します。日付や時間を指定した形式で表示する際には、strftime()メソッドを使用します。また、日付の加算、減算を行う際には、timedelta()メソッドを使用します。


![[Python]複数の図を並べて重ねる !](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/12/1-1400.jpg)

![[python]CSVファイル読み込み(pandas、numpy、リスト、1行ずつ)](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/11/1-300.jpg)
