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 |