標準ライブラリdatetimeを用いると現在日時が取得できる。
ライブラリdatetimeを使う際にはimportが必要。
import datetime
1. date/datetimeオブジェクト
2. date.today()による現在日時の取得
3. datetime.now()/datetime.today()による現在日時の取得
4. strftimeによる現在日時の文字列化
5. リファレンス
1. date/datetimeオブジェクト
datetime.dateオブジェクトは年・月・日、datetime.datetimeオブジェクトは年・月・日・時・分・秒・マイクロ秒からなり、これらのオブジェクトに現在日時を取得するメソッドを適用することで現在日時が取得できる。また取得した現在日時に、年・月・日などの項目に対応する属性を適用することで、年・月・日などを個別に取得できる
取得可能な項目と属性、取りうる範囲は以下表のとおり
項目 | 属性 | 範囲 |
---|---|---|
西暦 | year | 1-9999 |
月 | month | 1-12 |
日 | day | 1-31(月により28,29,30) |
時 | hour | 0-23 |
分 | minute | 0-59 |
秒 | second | 0-59 |
マイクロ秒 | microsecond | 0-999999 |
2. date.today()による現在日時の取得
datetime.dateオブジェクトに対して、today()メソッドを適用することで現在の年・月・日を取得できる。
import datetime print(datetime.date.today())
実行結果
2022-04-29
today()メソッドによる戻り値はdatetime.date型。
import datetime print(type(datetime.date.today()))
実行結果
<class 'datetime.date'>
today()メソッドを適用し、属性year、month、dayを指定すると、現在の年・月・日を個別に取得できる。
import datetime print(datetime.date.today().year)
実行結果
2022
個別に取得した年・月・日はint型になる。
import datetime print(type(datetime.date.today().year))
実行結果
<class 'int'>
3. datetime.now()/datetime.today()による現在日時の取得
datetime.datetimeオブジェクトに対して、today()メソッドを適用することで現在の年・月・日・時・分・秒・マイクロ秒を取得できる。
import datetime datetime.datetime.today()
実行結果
2022-4-17 10:7:17.785741)
today()メソッドによる戻り値はdatetime.datetime型。
import datetime print(type(datetime.datetime.today()))
実行結果
<class 'datetime.datetime'>
now()メソッドでも同様に現在の年・月・日・時・分・秒・マイクロ秒を取得できる。
import datetime print(datetime.datetime.now())
実行結果
2022-4-17 10:43:58.512176)
today()メソッドを適用し、属性year、month、day、hour、minute、second、microsecondを指定すると、現在の年・月・日・時・分・秒・マイクロ秒を個別に取得できる。
import datetime print(datetime.datetime.today().minute)
実行結果
46
個別に取得した属性値はint型になる。
import datetime print(type(datetime.datetime.today().minute))
実行結果
<class 'int'>
4. strftimeによる現在日時の文字列化
strftime()メソッドを適用することで、date、datetimeオブジェクトの値を指定した書式の文字列として取得できる。書式の指定はC89で制定された書式コードを用いる。多数の書式コードがあるが代表的なものは以下。
書式コード | 内容 | 戻り値の例 |
---|---|---|
%Y | 0埋めした西暦4桁 | 2022 |
%m | 0埋めした月 | 04 |
%d | 0埋めした日 | 07 |
%H | 0埋めした時 | 09 |
%M | 0埋めした分 | 39 |
%S | 0埋めした秒 | 55 |
%a | 曜日短縮形 | Mon |
%b | 月名短縮形 | Dec |
datetime.now()メソッドで取得した現在日時にstrftime()メソッドを適用する例。年月日時分秒が文字列で取得される。
import datetime print(datetime.datetime.now().strftime('%Y%m%d%H%M%S'))
実行結果
20220417112401
strftime()メソッドの書式として、書式コードと通常の文字を混在させることで任意の書式を作成可能。
import datetime print(datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S'))
実行結果
'2022-04-17-11-43-07'
5. リファレンス
Python 標準ライブラリ > datetime --- 基本的な日付型および時間型 > date オブジェクト
Python 標準ライブラリ > datetime --- 基本的な日付型および時間型 > datetime オブジェクト
Python 標準ライブラリ > datetime --- 基本的な日付型および時間型 > classmethod datetime.today()
Python 標準ライブラリ > datetime --- 基本的な日付型および時間型 > classmethod datetime.now(tz=None)
Python 標準ライブラリ > datetime --- 基本的な日付型および時間型 > strftime() と strptime() の振る舞い
0 件のコメント:
コメントを投稿