【Python】datetimeで日付・日時を取得する方法

まゆ

Pythonで日時を取得する方法が知りたいです💦

今回はこのような質問がありましたので、「Pythonで日時を扱う方法」について解説していきたいと思います。

日時を扱う場面は何かと多いので、しっかりマスターしていきましょう!

※この記事では、ubuntu:16.04・Python3.7.1で動作確認を行なっております。

それでは早速みていきましょう!

目次

datetimeとは

Pythonには、日付や時刻の操作を容易に行うためのdatetimeモジュールが用意されています。

datetimeモジュールは、日付、時刻、および日時の計算や操作を行うための便利な機能を提供しています。

以下に機能をまとめています。

・現在の日付、日時の取得
・指定した日付、日時の取得
フォーマットを指定して取得する
・日付の計算

このように日付や日時の処理を扱うことができます。

またPythonのdatetimeモジュールには、大きく分けて3つのクラスがあります。
それぞれのクラスは、異なる目的や機能を持っています。

以下に、それぞれのクラスについて説明します。

クラス説明
dateクラス年、月、日の情報を扱うためのクラス
timeクラス時、分、秒、マイクロ秒の情報を扱うためのクラス
datetimeクラス日付と時刻の情報を組み合わせたクラス

dateクラス

主な機能として、日付の生成、日付の比較、日付のフォーマット変換などがあります。日付のみを扱い、時刻の情報は持ちません。代表的な属性として、yearmonthdayなどがあります。

timeクラス

主な機能として、時刻の生成、時刻の比較、時刻の算術演算などがあります。日付の情報は持ちません。代表的な属性として、hourminutesecondmicrosecondなどがあります。

datetimeクラス

主な機能として、日付と時刻の生成、日付と時刻の比較、日付と時刻の算術演算などがあります。代表的な属性として、yearmonthdayhourminutesecondmicrosecondなどがあります。

まゆ

日付の計算まで出来るんですね!

datetimeの使い方

ここからはdatetimeモジュールの使い方を見ていきましょう。

datetimeモジュールのインポート

datetimeモジュールを使用するには、まず以下のようにインポートします。

import datetime

現在の日付や日時を取得する方法

datetimeモジュールを使って、現在の日付や指定した日付を取得する方法を見ていきましょう。

現在の日付の取得

現在の日付を取得するには、datetime.date.today()メソッドを使用します。以下のコードは、現在の日付を取得し、それを出力しています。

import datetime

today = datetime.date.today()
print(today)
2023-05-31

現在の日付と日時を取得

現在の日付と日時を取得するには、datetime.datetime.now()メソッドを使用します。以下のコードは、現在の日付と時刻を取得し、それを出力しています。

import datetime

now = datetime.datetime.now()
print(now)
2023-05-31 22:19:16.873542

このように、datetime.date.today()datetime.datetime.now()を使うことによって現在の日付や日時を取得することができます。

日時を単位ごとに取得する方法

年月日時分秒を単体で取得したい時ありますよね。

そんな時は以下のように指定してあげましょう。

date = datetime.datetime.now()
 
print("年:",date.year) 
print("月:",date.month)
print("日:",date.day) 
print("時:",date.hour)
print("分:",date.minute)
print("秒:",date.second)
print("マイクロ秒:",date.microsecond)
年: 2023
月: 5
日: 31
時: 22
分: 23
秒: 12
マイクロ秒: 780852
セイヤ

年・月・日・時・分・秒を簡単に取得することができますよね!

指定した日付や時刻を取得する方法

指定した日付や時刻を取得することもできます。

指定した日付の取得

指定した年、月、日を指定して日付を作成することもできます。datetime.date()メソッドを使用して、年、月、日を引数に指定します。以下は2023年1月1日を指定して日付を作成し、それを出力しています。

import datetime

date = datetime.date(2023, 1, 1)
print(date)
2023-01-01

指定した時刻の取得

指定した時、分、秒を指定して時刻を作成することもできます。datetime.time()メソッドを使用して、時、分、秒を引数に指定します。以下のコードは、12時34分56秒を指定して時刻を作成し、それを出力しています。

import datetime

time = datetime.time(12, 34, 56)
print(time)
12:34:56

日付や時刻を指定したいときは、引数に指定する日時を渡すことで実現できます。

日付のフォーマットを変更する方法

datetimeのdateクラスは、先ほどのサンプルコードのように「yyyy-mm-dd」というフォーマットにデフォルトで設定されてあります。

日付のフォーマットを変更するには、strftime()メソッドを使用します。

strftime()メソッドは、指定した書式に基づいて日付を文字列に変換します。

以下にサンプルコードを書いておきます。

import datetime

# 現在の日時を取得
now = datetime.datetime.now()

# 日時のフォーマットを変更して表示
formatted_datetime = now.strftime("%Y年%m月%d日 %H時%M分%S秒")
print(formatted_datetime)
2023年06月01日 11時28分25秒

このように、strftime()メソッドの引数に、日付を表す書式指示子を含む書式文字列を指定することでフォーマットを変更することができます。

まゆ

自分の好きなフォーマットにカスタマイズできるのは便利ですね!

日付の計算をする方法

日付の操作を行うときに、日付の足し算や引き算を行う場面があります。

そういった時はdatetime.timedelta()クラスを使用して、日付に対して加算や減算を行うことができます。

以下は日付計算のサンプルコードです。

日付の加算・減算

import datetime

today = datetime.date.today()
delta = datetime.timedelta(days=3)
new_date = today + delta

print(new_date)
2023-06-04 //実行日:2023年06月01日

datetime.timedelta()クラスを使用して、日付に対して加算や減算を行うことができます。このコードは、現在の日付に3日を加算し、結果を出力する例です。(実行日:2023年6月1日)

また、new_date = today + deltaの部分をマイナスにすることで、引き算も実行することができます。

時刻の加算・減算

import datetime

now = datetime.datetime.now()
delta = datetime.timedelta(hours=1, minutes=30)
new_time = now + delta

print(new_time)

時刻に対しても、datetime.timedelta()クラスを使用して加算や減算を行うことができます。このコードは、現在の時刻から1時間30分を加算し、結果を出力する例です。

日時の差分の計算

import datetime

date1 = datetime.datetime(2023, 1, 1, 12, 0, 0)
date2 = datetime.datetime(2023, 1, 2, 14, 30, 0)
diff = date2 - date1

print(diff)
1 day, 2:30:00

日時間の差分を計算するためにも、datetime.timedelta()クラスを使用します。このコードは、指定した2つの日時の差分を計算し、結果を出力する例です。

1日と2時間30分差があることがわかりますね!

Pythonおすすめ参考書ランキング

まとめ

今回はdatetimeモジュールを使った基本的な日付や日時の扱い方について解説しました。

プログラミングをしていると1度は日付を扱うことがあると思うので、しっかりとマスターしたいですね!

この記事があなたの役に立てれば幸いです。

セイヤ

最後まで読んで頂きありがとうございました!

プログラミングスクールランキング一覧

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次