Python Datetime
Note: Python における日付は、独自のデータ型ではなく、日付オブジェクトとして扱うために datetime モジュールをインポートします。
Python Dates
Pythonにおける日付は独自のデータ型ではなく、日付オブジェクトとして扱うために datetime モジュールをインポートします。
例
datetime モジュールをインポートし、現在の日付を表示します:
import datetime
x = datetime.datetime.now()
print(x)
日付の出力
上記の例のコードを実行すると、次の結果が得られます:
2024-07-09 11:25:56.518891
日付には年、月、日、時、分、秒、マイクロ秒が含まれます。
datetime モジュールには、日付オブジェクトに関する情報を返す多くのメソッドがあります。
以下にいくつかの例を示しますが、この章の後半で詳しく学びます:
例
年と曜日名を返します:
import datetime
x = datetime.datetime.now()
print(x.year)
print(x.strftime("%A"))
日付オブジェクトの作成
日付を作成するには、datetime モジュールの datetime() クラス(コンストラクタ)を使用します。
datetime() クラスには、年、月、日の3つのパラメータが必要です:
例
日付オブジェクトを作成します:
import datetime
x = datetime.datetime(2020, 5, 17)
print(x)
datetime() クラスは、時間とタイムゾーン(時、分、秒、マイクロ秒、タイムゾーンの tzone)のパラメータも受け取りますが、これらはオプションで、デフォルト値は 0 です(タイムゾーンには None)。
strftime() メソッド
datetime オブジェクトには、日付オブジェクトを読みやすい文字列にフォーマットするためのメソッドがあります。
このメソッドは strftime() と呼ばれ、戻り値の文字列のフォーマットを指定するために format パラメータを取ります:
例
月の名前を表示します:
import datetime
x = datetime.datetime(2018, 6, 1)
print(x.strftime("%B"))
すべての有効なフォーマットコードの参照:
ディレクティブ | 説明 | 例 |
---|---|---|
%a | 曜日の短いバージョン | Wed |
%A | 曜日の完全なバージョン | Wednesday |
%w | 曜日を 0-6 の数字で表現(0 は日曜日) | 3 |
%d | 月の日付 01-31 | 31 |
%b | 月の名前の短いバージョン | Dec |
%B | 月の名前の完全なバージョン | December |
%m | 月を 01-12 の数字で表現 | 12 |
%y | 世紀を含まない年の短いバージョン | 18 |
%Y | 年の完全なバージョン | 2018 |
%H | 時間を 00-23 で表現 | 17 |
%I | 時間を 00-12 で表現 | 05 |
%p | AM/PM | PM |
%M | 分を 00-59 で表現 | 41 |
%S | 秒を 00-59 で表現 | 08 |
%f | マイクロ秒を 000000-999999 で表現 | 548513 |
%z | UTC オフセット | +0100 |
%Z | タイムゾーン | CST |
%j | 年の日数 001-366 | 365 |
%U | 年の週番号(週の最初が日曜日) 00-53 | 52 |
%W | 年の週番号(週の最初が月曜日) 00-53 | 52 |
%c | 日付と時刻のローカルバージョン | Mon Dec 31 17:41:00 2018 |
%C | 世紀 | 20 |
%x | 日付のローカルバージョン | 12/31/18 |
%X | 時間のローカルバージョン | 17:41:00 |
%% | パーセント記号 | % |
%G | ISO 8601 年 | 2018 |
%u | ISO 8601 曜日(1-7) | 1 |
%V | ISO 8601 週番号(01-53) | 01 |