datetime は日付と時刻を扱うライブラリです。
このライブラリを利用して現在時刻を取得したり、特定の時刻形式の文字列に変換したりすることもできます。
次の内容を調べてみましょう。
1. 現在の日付と時刻の datetime オブジェクトの作成 : now()
now()
は、現在の日付、時刻情報を持つ datetime オブジェクトを生成します。
import datetime
datetime_object = datetime.datetime.now()
print(datetime_object)
print(type(datetime_object))
Output:
2020-10-11 21:37:45.648730
<class 'datetime.datetime'>
from datetime
を使って単に datetime.now()
で表現することもできます。
from datetime import datetime
datetime_object = datetime.now()
print(datetime_object)
2.現在の日付のdateオブジェクトを生成する:today()
today()
は現在の日付情報を持つ date オブジェクトを生成します。
import datetime
date_object = datetime.date.today()
print(date_object)
print(type(date_object))
Output:
2020-10-11
<class 'datetime.date'>
from datetime
で date.today()
のように簡単に表現できます。
from datetime import date
today = date.today()
print(today)
Output:
2020-10-11
3. 任意の時間の日付、日時オブジェクトの作成
特定の日付情報を持つdatetimeオブジェクトを直接作成することもできます。
次のようにコンストラクタに引数を渡すだけです。
- datetime(year, month, day, hour, min, second)
- date(year, month, day)
d = datetime(2020, 10, 11, 10, 30, 20)
print(d)
a = date(2018, 10, 11)
print(a)
Output:
2020-10-11 10:30:20
2018-10-11
4. Timestampでdate、datetimeオブジェクトを作成する
Timestampは1970/01/01 (UTC)
からある時間までの秒を計算した値です。
次のように fromtimestamp()
の引数として timestamp を渡すと、これに対応する date, datetime オブジェクトが生成されます。
from datetime import date
from datetime import datetime
date_obj = date.fromtimestamp(1602374400)
print("Current Date =", date_obj)
datetime_obj = datetime.fromtimestamp(1602374400)
print("Current DateTime =", datetime_obj)
Output:
Current Date = 2020-10-11
Current DateTime = 2020-10-11 09:00:00
5. date オブジェクトの year、month、day
次のように、dateオブジェクトからyear、month、dayの値を取得できます。
from datetime import date
today = date.today()
print("year:", today.year)
print("month:", today.month)
print("day:", today.day)
Output:
year: 2020
month: 10
day: 11
6. 任意の時間の時間オブジェクトの作成
time()
は引数に渡された値で time オブジェクトを生成します。
from datetime import time
# time(hour = 0, minute = 0, second = 0)
a = time()
print("a =", a)
print(type(a))
# time(hour, minute, second)
b = time(15, 25, 30)
print("b =", b)
# time(hour, minute and second)
c = time(hour = 15, minute = 25, second = 30)
print("c =", c)
# time(hour, minute, second, microsecond)
d = time(15, 25, 30, 123456)
print("d =", d)
Output:
a = 00:00:00
<class 'datetime.time'>
b = 15:25:30
c = 15:25:30
d = 15:25:30.123456
次のように、timeオブジェクトからhour、minute、secondなどの値を読み取ることができます。
from datetime import time
a = time(15, 25, 30)
print("time =", a)
print("hour =", a.hour)
print("minute =", a.minute)
print("second =", a.second)
print("microsecond =", a.microsecond)
Output:
time = 15:25:30
hour = 15
minute = 25
second = 30
microsecond = 0
7. timedeltaによる時間差の表現
timedeltaは、2つの時間オブジェクトの違いを表します。
次のように2つのdate、datetimeを減算すると、timedeltaオブジェクトが作成され、時間差の値があります。
from datetime import datetime, date
time1 = date(year = 2020, month = 10, day = 11)
time2 = date(year = 2018, month = 11, day = 22)
time_delta = time1 - time2
print("time_delta =", time_delta)
print("type =", type(time_delta))
time1 = datetime(year = 2020, month = 10, day = 11, hour = 15, minute =43, second = 30)
time2 = datetime(year = 2018, month = 11, day = 22, hour = 12, minute = 20, second = 11)
time_delta = time1 - time2
print("time_delta =", time_delta)
print("type =", type(time_delta))
Output:
time_delta = 689 days, 0:00:00
type = <class 'datetime.timedelta'>
time_delta = 689 days, 3:23:19
type = <class 'datetime.timedelta'>
8. 特定の時間形式に変換
strftime()
は datetime オブジェクトを目的の時間形式に変換し、その結果を文字列として返します。
from datetime import datetime
# current date and time
now = datetime.now()
format_date = now.strftime("%H:%M:%S")
print("time:", format_date)
format_date = now.strftime("%m/%d/%Y, %H:%M:%S")
# mm/dd/YY H:M:S format
print("date and time:", format_date)
format_date = now.strftime("%d/%m/%Y, %H:%M:%S")
# dd/mm/YY H:M:S format
print("date and time:", format_date)
Output:
time: 21:57:38
date and time: 10/11/2020, 21:57:38
date and time: 11/10/2020, 21:57:38
9. 文字列を datetime オブジェクトに変換
strptime()
は文字列で表される時間を datetime オブジェクトに変換します。
次のように文字列を解析してdatetimeオブジェクトに変換できます。
from datetime import datetime
date_str = "11 October, 2020"
datetime_obj = datetime.strptime(date_str, "%d %B, %Y")
print("date =", datetime_obj)
print(type(datetime_obj))
date_str = "11/10/2020, 12:20:30"
datetime_obj = datetime.strptime(date_str, "%d/%m/%Y, %H:%M:%S")
print("date =", datetime_obj)
print(type(datetime_obj))
Output:
date = 2020-10-11 00:00:00
<class 'datetime.datetime'>
date = 2020-10-11 12:20:30
<class 'datetime.datetime'>
Related Posts
- Python - JSONファイル読み書きする方法
- Python - 平方根の計算方法(Square Root)
- Python - 文字列 特定文字 削除
- Python lower() 文字列を小文字に変換
- Python upper() 文字列を大文字に変換
- Python - ファイル数の確認
- Python - イテレーションステートメントでセット巡回
- Python - 文字列位置(Index)を探す
- Python - ファイルを読み込み、1行ずつリストに保存する
- UbuntuにPython 3.10をインストールする方法
- Python - 関数の定義と呼び出し方法
- Python - ディクショナリーの整理と例
- Python - ディクショナリーの初期化、4つの方法
- Python - XML生成とファイルの保存
- Python - XML解析、タグ、または要素別に読み取る
- Python - 文字列をリストに変換する方法
- Python - 'and'と'&'の違い
- Python - 文字列 切り取り(substring、slicing)
- Python - 'is'と'=='の違い
- PythonでShell Command、スクリプトの実行
- Python - 数字3桁ごとにコンマ(,)を入れる方法
- Python - 辞書をリストに変換
- Python - 文字列から数字のみを抽出する方法
- Python - zipで二つのリスト縛り
- Python - リストを文字列に変換する
- Python - 辞書にキーがあることを確認する
- Python - ファイル、フォルダが存在確認
- Python - floatをintに変更する方法
- Python - リストの最初、最後の 要素を取得する方法
- Python - bytesをStringに変換する方法
- Python - Stringをbytesに変換する方法
- Python - 辞書の重複排除方法
- Python - 二つのリスト一つ併合
- Python - リストの重複排除、4つの方法
- Python - listの先頭にデータを追加する