Pythonで時刻比較をする方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonで時刻比較をする方法について現役エンジニアが解説しています。時刻を比較するにはUNIX時間に変換する方法やdatetimeモジュールを使う方法があります。datetimeモジュールで日時の変換方法や日時の計算方法を解説します。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

Pythonで時刻比較をする方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。

 

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonで時刻比較をする方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

目次

 

時刻比較をする方法

プログラムの中で時刻を比較するときには一度現在時刻をUNIX時間と呼ばれるコンピュータ上の時刻表現に変換する方法がよく用いられます。

しかし、この方法では自分で変換を行うためのロジックを組む必要があり、実装に多少手間がかかります。そこで、Pythonであればdatetimeモジュールを使うことで簡単に時刻を表現する変数に変換して、比較を簡単に行うことができます。

それでは、次の項目でPythonで時刻比較をするときに使われるdatetimeモジュールのメソッドを見ていきましょう。
 

[PR] Pythonで挫折しない学習方法を動画で公開中

date/time/datetimeの違い

実際に時刻比較をするときに使われるメソッドを3つピックアップします。

先程も述べたように標準モジュールなので、Pythonで手軽に使うことができます。
 

date

日付型を扱うメソッドです。以下の例のように年、月、日を設定することで変数として定義できます。

print(datetime.date(2020, 07, 07))

 

time

こちらは時刻を扱うメソッドです。dateメソッドと同様に時、分、秒を設定することで時刻比較をできる形に変換します。

さらに細かく時刻を設定したいときには、第4引数でマイクロ秒を設定できます。

print(datetime.time(15, 30, 10))

 

datetime

最後に紹介するのは、日付、時間のセットで変換できるメソッドです。

日付と時間の両方で比較したいときに便利なメソッドで、2020年7月7日15:30:10をdatetimeで変換するには、以下のようになります。

print(datetime.datetime(2020, 07, 07, 15, 30,10))

 

実際に書いてみよう

それでは実際にdatetimeモジュールのメソッドを使って時刻比較をしてみましょう。

以下のコード任意のフォルダに保存し、実行します。

from datetime import date
from datetime import time
from datetime import datetime

print("2019-11-08 > 2020-01-03 = {}".format(date(2019,11,8)>date(2020,1,3)))
print("20:18:10 < 12:05:20 = {}".format(time(20,18,10)<time(12,5,20)))
print("2020-02-05 02:03:10 < 2020-03-09 00:00:01 = {}".format(datetime(2020,2,5,2,3,10) < datetime(2020,3,9,0,0,1)))

実行すると以下の結果になり、正しく時刻比較ができていることがわかると思います。

2019-11-08 > 2020-01-03 = False
20:18:10 < 12:05:20 = False
2020-02-05 02:03:10 < 2020-03-09 00:00:01 = True

 

まとめ

今回はPythonを使って時刻を比較する方法を紹介しました。

datetimeモジュールを使って日時を変換すれば簡単に時刻比較をすることができたり、日時の計算も簡単に行うことができるのでPythonで日時を扱う際には覚えておくといいでしょう。
 

監修してくれたメンター

メンター三浦

モバイルゲームを運用している会社のエンジニアをしています。趣味でWEB開発やクラウドコンピューティングもやっており、ソフトもハードもなんでもやります。

TechAcademyジュニアではPythonロボティクスコースを担当しています。好きな言語はPython, Node.js。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間で、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。