Pythonのtimeモジュールを使って時間の計測や変換を行う方法

スポンサーリンク

Python timeモジュールは、Pythonスクリプトを通してアプリケーションにシステム時刻を組み込むための様々な関数を提供します。

まず、timeモジュールを使うには、以下のようにpythonスクリプトでインポートする必要があります。

import time
スポンサーリンク

「エポック」の概念を理解する

タイムスタンプに関連するデータに対して操作を行う場合、その操作を開始する起点が必要です。

エポックとは、基本的に時間の経過を測定するための起点となるものです。

Python タイムモジュール関数

Pythonのtimeモジュールは、タイムスタンプを扱うための様々な関数を提供しています。

以下は、timeモジュールで最もよく使われる関数です。

  • time.time()
  • time.sleep()(タイムスリープ
  • time.ctime()
  • time.localtime()
  • time.mktime()
  • time.gmtime()
  • time.strptime()
  • time.strftime()
  • time.asctime()

1. time.time()メソッド

Python の time モジュールは現在のローカル時刻の秒数を取得する time.time() メソッドを持っています。

構文は以下の通りです。

time.time()

例:

import time
seconds = time.time()
print("Current time in seconds since epoch =", seconds)

結果は以下の通りです。

Current time in seconds since epoch = 1582961644.3032079

2. time.sleep()メソッド

time.sleep()メソッドは、現在のプロセスまたはスレッドの実行の間に時間経過または遅延を提供します。

構文は以下の通りです。

time.sleep(value)

例えば、以下の様になります。

import time
 
print("JournalDev!!!!.")
time.sleep(1.2)
print("Python.")
time.sleep(3.2)
print("Engineering")

上記のコードを実行すると、コンソールに出力文が表示されるまでの遅延を簡単に観察することができます

結果は以下の通りです。

JournalDev!!!!.
Python.
Engineering

3. time.localtime()メソッド

Pythonのtimeモジュールにはstruct_timeクラスがあり、timeモジュールの様々な関数でアクセスすることができます

このクラスは、年、時間、秒など、ローカルタイムスタンプの様々なフィールドにアクセスするのに役立ちます。

struct_timeクラスは、以下の属性から構成されています。

  • tm__year: 特定のローカル時刻の年を返す。
  • tm_hour: 時刻を表す。特定のローカルタイムの時間を返す。
  • tm___min: ローカル時間の分単位を返します。
  • tm_sec: ローカル時間の秒の値を返します。
  • tm_mon: 当該時刻の月を返します ローカルタイムの月値を返します。
  • tm_mday: 当該月の日付を返します ローカル時刻の月中の日付を返します。
    tm_mday: 当該ローカル時刻の月における日付を返します * tm_wday: 平日の値を返します 平日(0-月~6-日)の値を返します。
  • tm___yday 1-366の範囲内の特定の日の番号を返す。

time.localtime()`関数はバックエンドでtime.time()関数を実行し、現在の時刻の詳細をstruct_timeクラスのフォーマットでローカルタイムで返します。

また、この関数の引数として、エポックからの秒数を渡すことができる。

構文は以下の様な感じです。

time.localtime(seconds)

例えば、以下の様になります。

import time
 
local_time = time.localtime()
print("Time:",local_time)
print("Current year:", local_time.tm_year)
print("Current hour:", local_time.tm_hour)
print("Current minute:", local_time.tm_min)
print("Current second:", local_time.tm_sec)

結果は以下の通りです。

Time: time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=14, tm_min=3, tm_sec=23, tm_wday=5, tm_yday=60, tm_isdst=0)
Current year: 2020
Current hour: 14
Current minute: 3
Current second: 23

4. time.ctime()メソッド

time.ctime()`メソッドは、epochからの秒数またはtime()関数の結果を引数にとり、現在のローカルタイムを表す文字列を返します。

構文は以下の通りです。

ctime(seconds)

例えば、以下の様になります。

from time import time, ctime
 
current_time = time()
res = ctime(tim)
print("Local_time:",res)

結果は以下の通りです。

Local_time: Sat Feb 29 14:08:26 2020

5. time.mktime()メソッド

time.mktime()`メソッドは、time.localtime()メソッドの逆バージョンです。

struct_time (struct_time クラスの全てのタプル)を引数にとり、エポックから経過した時間(秒)を返します。

構文は以下の様な感じです。

構文:

time.mktime()

例えば、以下の様になります。

import time
 
local_time = time.localtime()
sec = time.mktime(local_time)
print(sec)

上記の例では、locatime()メソッドでstruct_timeクラスのタプルを取得し、それをmktime()メソッドに渡しています。

結果は以下の通りです。

1582966721.0

6. time.gmtime()メソッド

time.gmtime()`関数はバックエンドでtime.time()関数を実行し、struct_timeクラスのフォーマットで現在の時刻の詳細をUTCで返します。

構文は以下の様な感じです。

time.gmtime()

例えば、以下の様になります。

import time
 
local_time = time.gmtime()
print(local_time)

結果は以下の通りです。

time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=9, tm_min=2, tm_sec=49, tm_wday=5, tm_yday=60, tm_isdst=0)

7. time.strptime()メソッド

time.strptime()`メソッドは、時刻を表す文字列を受け付け、struct_timeのフォーマットで時刻の詳細を返します。

構文は以下の通りです。

構文:

time.strptime(string, %format code)

フォーマットコード

  • %m – 月
    %m – 月 * %d – 日
  • %M – 月
    %M – 月 * %S – 秒
    %S – 秒 * %H – 時
  • Y – 年

例えば、以下の様になります。

import time
 
tym = "29 February, 2020"
sys = time.strptime(tym, "%d %B, %Y")
print(sys)

結果は以下の通りです。

time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=60, tm_isdst=-1)

8. time.strftime()メソッド

time.strftime()`メソッドは、time.strptime()メソッドの逆バージョンです。

struct_timeクラスのタプルを引数にとり、入力されたフォーマットコードに従った時刻を表す文字列を返します。

構文は以下の様な感じです。

time.strftime(%format code, struct_time)

例えば、以下の様になります。

例:

import time
 
tym = time.localtime()
opt = time.strftime("%d/%m/%Y, %H:%M:%S",tym)
 
print(opt)

結果は以下の通りです。

29/02/2020, 15:07:16

9. time.asctime()メソッド

time.asctime()`メソッドは struct_time クラスのタプルを引数にとり、 struct_time クラスのタプルから入力された時間を表す文字列を返すメソッドです。

例えば、以下の様になります。

import time
 
tym = time.localtime()
 
opt = time.asctime(tym)
print("TimeStamp:",opt)

結果は以下の通りです。

TimeStamp: Sat Feb 29 15:27:14 2020

まとめ

この記事では、Pythonのtimeモジュールと、それによって提供される様々な機能について理解しました。

タイトルとURLをコピーしました