Python で,現在の時刻や経過時間を扱う

調べてわかりやすかったのは次のサイトだった.最初はここで学ぶととてもわかりやすい.

IPythonでコードの実行時間を測る話 – すこしふしぎ.

早い話,Python では time というモジュールを使ってあげることで,時間関連のことは簡単にできてしまう.そのことを,分かりやすさを意識してまとめてみる.







UNIX時間

大体の概念

Python の time モジュールで扱っている時間は「UNIX時間」というものである.
UNIX時間 – Wikipedia

UNIX時間のことをざっくりいうと,「1970年1月1日0時0分0秒から今の時間まで何秒過ぎたか表す数字」である.そもそもどこからこのUNIX時間をpythonは持ってきているかとかいう疑問はもちろん起きるが,この投稿では残念ながらその内容については書かない(筆者の勉強不足のせいです).

今のUNIX時間をゲットする

では,このUNIX時間とやらを,早速Pythonで数字としてゲットしてみる.使うのは冒頭でチラッと書いた time モジュールだ.

16.3. time — 時刻データへのアクセスと変換 – Python 公式ドキュメント

このモジュールを import して現在(プログラムを回した時点とほぼ一致)のUNIX時間を表示するプログラムは次のようになる.

import time
print(time.time())

これを実行すると,例えばこの投稿を書いている日本時間で西暦2017年2月18日21時26分数秒当たりのUNIX時間は次のように表示された.

1487420694.9005387

どうやら,この「time.time()」つまり「timeモジュールの,timeという関数」が実行されたときは,1970年1月1日0時0分0秒からは1487420694秒程立っているらしい.

日付や時刻をゲットする

import した time モジュールはUNIX時間だけでなく,今の時間を表示してくれる機能もある.それが ctime という関数だ.次のプログラムを実行すると,この ctime 関数が実行された時間が表示される.

import time
print(time.ctime())

後の方のtime(という関数)がctime(という関数)に代わっていることだけが違い.

筆者の場合実行結果は

Sat Feb 18 21:29:49 2017

となった.

プログラムの計算時間などを測定する

プログラムの計算時間など,どれだけ時間が経ったかを知りたい場合は次のような発想を用いればできそうだ.

  1. 時間を図る時点のUNIX時間(Aとする)をゲットする
  2. 図りたい計算過程をその次に書く
  3. 図り終わりに,また新しいUNIX時間(Bとする)をゲットする
  4. B-A をすれば,その計算過程に何秒かかったがわかる

文章が下手なので,例を示す.自分のラップトップで0から999,999までの足し算にかかる時間を計測するプログラムを作ったところ次のようになった.

#timeモジュールのimport
import time

#変数の準備
total = 0

#測定開始時間の記録
A = time.time()

#計算時間を図りたい計算過程
for i in range(1000000):
    total += i

#測定終わりの時間を記録
B = time.time()

#計算にかかった秒数を表示
print("かかった時間は{0}秒です.".format(B-A))

実行結果は次のようになった.

かかった時間は0.16861391067504883秒です.

ぼろパソコンだからこんなもんか.

おまけ:Linuxで実行時間を表示する

Python の話ではないが,Linux でプログラムの実行時間などを知りたいときは,そのプログラムの実行コマンドの手前に「time」とつけてあげるだけで計算が終わったときに計算時間の情報を吐いてくれます.詳しくは「linux time」でググると十分出てくるので,そちらを参考にしていただきたいです.

コメントを残す

*