Pythonのdatetime.today()で現在時刻を取得: 年、月、日、時、分、秒の取得
- 作成日: 2021-06-06
- 更新日: 2023-12-24
- カテゴリ: Python
Pythonで現在時刻を取得する
Pythonではライブラリを使うと現在時刻を取得することができます。
ライブラリは標準ライブラリのdatetimeを使います。
結論から言うとdatetime
を使って現在時刻を取得するには↓のようにします。
from datetime import datetime
today = datetime.today()
print(today)
# 2021-04-21 21:07:22.417046
この記事ではdatetime
を使って現在時刻を取得する方法、取得した現在時刻を利用する方法をわかりやすく解説します。
具体的には↓を見ていきます。
- datetimeとは?
- datetime.datetimeオブジェクトとは?
- 現在時刻の取得方法
- 現在時刻の属性値
- 現在時刻からn時間前の時刻
- 現在時刻からn時間後の時刻
関連記事
頭が悪い人のPythonのevalの使い方
頭がいい人のPythonのexitの使い方
状態遷移による文字列パースのテクニック【Python】
形態素解析で代名詞+助詞+名詞を文章から抜き出す【Python, 自然言語処理, Janome】
在宅・未経験、Pythonで稼ぐ方法は?【取引・宣伝・広告】
datetimeとは?
Pythonのdatetime
とはPythonの標準ライブラリの1つです。
このライブラリ、モジュールには時刻に関するツールが格納されています。
datetime
の関数を使うと現在時刻を取得出来たり、時間同士の差分を計算したり、文字列を時刻にしたり、時刻を文字列にすることが可能です。
類似のモジュールにはcalendar
とtime
があります。
calendar
は汎用のカレンダーを扱えるモジュールです。
time
は時刻に特化したモジュールです。
datetime
を使いたい場合は↓のようにdatetime
をインポートすることで使うことができます。
import datetime
datetime.datetimeオブジェクトとは?
datetime
モジュールには複数のオブジェクトが保存されています。
date
やtime
, datetime
オブジェクト等々。
datetime
オブジェクトはdatetime
モジュールと名前がかぶっていてわかりづらいですが、階層的には
+ datetime
`----------- datetime
です。
そのため、
import datetime
print(datetime.datetime)
# <class 'datetime.datetime'>
のようにアクセスすることができます。
datetime
オブジェクトは日付と時刻をまとめて管理するオブジェクトです。
このオブジェクトを使うと日付と時刻にまつわる処理を書くことができます。
datetime
はグレゴリオ暦が両方向に延長されているものと仮定されています。
また、datetime
は1日1日が厳密に60 * 60 * 24
秒であると仮定しています。
60
秒は1
分でそれが60
個で1
時間、さらにそれが24
個なのできっちり24
時間と言うことですね。
現在時刻の取得方法
現在時刻を取得するにはdatetime.datetime
オブジェクトのtoday()
関数を使います。
today()
は↓のような構造になっています。
classmethod datetime.today()
today()
はタイムゾーンを指定できません。
タイムゾーンを指定したい場合はnow()
を使います。
today()
は時刻の取得に成功すると現在時刻を格納したdatetime.datetime
オブジェクトを返します。
from datetime import datetime
today = datetime.today()
print(type(today))
# <class 'datetime.datetime'>
print(today)
# 2021-04-21 21:58:17.969627
現在時刻の属性値
today()
が返すdatetime.datetime
オブジェクトには属性があります。
この属性にアクセスすることで具体的な現在時刻の情報に触れることができます。
時刻に関する属性は↓の通りです。
属性 | 表現する時間 | 値の範囲 |
year |
年数 | MINYEAR <= year <= MAXYEAR |
month |
月数 | 1 <= month <= 12 |
day |
日数 | 1 <= day <= 指定された月と年における日数 |
hour |
時数 | 0 <= hour < 24 |
minute |
分数 | 0 <= minute < 60 |
second |
秒数 | 0 <= second < 60 |
microsecond |
マイクロ秒数 | 0 <= microsecond < 1000000 |
属性の参照は↓のようにします。
from datetime import datetime
today = datetime.today()
print(today.year) # 2021
print(today.month) # 4
print(today.day) # 21
print(today.hour) # 21
print(today.minute) # 15
print(today.second) # 26
print(today.microsecond) # 950872
*↑の出力は実行環境によって変わります。
現在時刻からn時間前の時刻
現在時刻からn
時間前の時刻を取得したい場合があります。
そういう場合はdatetime.timedelta()
を使います。
timedelta()
は経過時間を表現するオブジェクトです。
現在時刻から1時間前の時刻を取得したい場合は↓のようにします。
from datetime import datetime, timedelta
today = datetime.today()
dt = today - timedelta(hours=1)
print(dt)
# 2021-04-21 21:22:14.545597
最初にdatetime.today()
で現在時刻を取得します。
そしてtimedelta(hours=1)
でオブジェクトを作成し、それをtoday
から引きます。
その結果であるdt
には演算された時刻が保存されています。
timedelta()
に指定できる引数は↓の通りです。
- days
- seconds
- microseconds
- milliseconds
- minutes
- hours
- weeks
↑の引数を見ると時間の他にも分数や秒数、日数なども指定できることがわかります。
現在時刻からn時間後の時刻
現在時刻からn
時間後の時刻を取得したい場合は↓のようにします。
from datetime import datetime, timedelta
today = datetime.today()
dt = today + timedelta(hours=1)
print(dt)
# 2021-04-21 22:22:14.545597
timedelta
の引数などの詳細については前述の項を参照してください。
n
時間前の演算と比べると演算が足し算になっているのがわかります。
このようにtimedelta
オブジェクトはdatetime.datetime
オブジェクトと演算させることができます。
おわりに
今回はPythonで現在時刻を取得する方法を見てみました。
現在時刻を取得したいケースはけっこうありますが、Pythonでは簡単に取得できますね。
🦝 < 今何時ですか?
🐭 < 右側です
🦊 < 日時計かよ