目次
日付と時刻の関数やメソッド
ロボ君
Pythonの日付と時刻の関数やメソッドは、datetime モジュールで提供されていマス。
datetime
モジュールには、以下の関数やメソッドがあります。
datetime.date()
:日付オブジェクトを生成します。datetime.time()
:時刻オブジェクトを生成します。datetime.datetime()
:日付と時刻のオブジェクトを生成します。datetime.now()
:現在の日付と時刻のオブジェクトを取得します。datetime.strptime()
:文字列を日付または時刻のオブジェクトに変換します。datetime.strftime()
:日付または時刻のオブジェクトを文字列に変換します。
カレンダープログラム
次のコードは、Pythonの日付と時刻の関数やメソッドを使用して、簡単なカレンダープログラムを作成しています。
import datetime
# 曜日を日本語で表示するためのディクショナリを作成
weekday_ja = {
0: "日曜日",
1: "月曜日",
2: "火曜日",
3: "水曜日",
4: "木曜日",
5: "金曜日",
6: "土曜日",
}
# 現在の日付と時刻を取得
now = datetime.datetime.now()
# 年を取得
year = now.year
# 月を取得
month = now.month
# 日を取得
day = now.day
# 曜日を取得
weekday = now.weekday()
# カレンダーを表示
print("** カレンダー **")
print("年:", year)
print("月:", month)
print("日:", day)
print("曜日:", weekday_ja[weekday])
実行結果↓
# 年月日と曜日は実行した時点のものです。
** カレンダー **
年: 2023
月: 10
日: 6
曜日: 木曜日
このコードは、以下の手順でカレンダーを表示しています。
- 曜日を日本語で表示するためのディクショナリを作成します。
- 現在の日付と時刻を取得します。
- 年、月、日を取得します。
- 曜日を取得します。
- 曜日をディクショナリから取得して、日本語で表示します。
曜日を英語で表示する場合は・・
# 曜日を取得
weekday = now.strftime("%A")
print(weekday)
英語だとコードがシンプル。
日付と時刻の関数やメソッドの使用例
datetime
モジュールの日付と時刻の関数やメソッドは、さまざまな用途に使用できます。
現在の日付と時刻を取得する
import datetime
# 現在の日付と時刻を取得
now = datetime.datetime.now()
print(now)
# 値は実行した時点のものです。
# 2023-10-06 22:27:46.374961
指定した日付と時刻のオブジェクトを生成する
import datetime
# 日付の指定
date = datetime.date(2023, 10, 25)
# 時刻の指定
time = datetime.time(12, 0, 0)
# 日付と時刻の指定
datetime = datetime.datetime(2023, 10, 25, 12, 0, 0)
print(date)
print(time)
print(datetime)
# 値は実行した時点のものです。
# 2023-10-25
# 12:00:00
# 2023-10-25 12:00:00
文字列を日付または時刻のオブジェクトに変換する
import datetime
# 文字列の代入
date_str = "2023-10-25"
time_str = "12:00:00"
datetime_str = "2023-10-25 12:00:00"
# 文字列を時刻に変換
date = datetime.datetime.strptime(date_str, "%Y-%m-%d")
time = datetime.datetime.strptime(time_str, "%H:%M:%S")
datetime = datetime.datetime.strptime(datetime_str, "%Y-%m-%d %H:%M:%S")
print(date)
print(time)
print(datetime)
# 値は実行した時点のものです。
# 2023-10-25 00:00:00
# 1900-01-01 12:00:00
# 2023-10-25 12:00:00
日付または時刻のオブジェクトを文字列に変換する
import datetime
# 日付・時刻の代入
date = datetime.date(2023, 10, 25)
time = datetime.time(12, 0, 0)
datetime = datetime.datetime(2023, 10, 25, 12, 0, 0)
# 日付・時刻を文字列に変換
str_date = date.strftime("%Y-%m-%d")
str_time = time.strftime("%H:%M:%S")
str_datetime = datetime.strftime("%Y-%m-%d %H:%M:%S")
print(str_date)
print(str_time)
print(str_datetime)
# 値は実行した時点のものです。
# 2023-10-25
# 12:00:00
# 2023-10-25 12:00:00