Pythonのtimeモジュールで現在時刻を取得・変換する方法を徹底解説
はじめに
Pythonのtimeライブラリは、現実世界の時刻を取得し、それに関連するさまざまな処理を行うために使用されます。このモジュールを使えば、スクリプトの実行タイミングを制御することも可能です。
本記事では、timeモジュールの基本的な使い方から、時刻の取得・変換・表示方法まで、実例を交えてわかりやすく解説します。
準備:timeモジュールのインポート
timeモジュールはPythonに標準で同梱されているため、PIPなどのパッケージマネージャーで別途インストールする必要はありません。
各種関数やメソッドを使用するには、まずモジュールをインポートします。
import time
現在のローカル時刻を表示する
現在のローカル時刻を表示するには、ctime()関数を使用します。
まず、エポック(1970年1月1日 00:00:00)からの経過秒数を取得します。その値をctime()関数に渡すことで、人間が読める形式の日時文字列に変換できます。
import time
seconds = time.time()
local_time = time.ctime(seconds)
print("Local time:", local_time)実行結果
Local time: Sun Jan 31 23:50:16 2021
上記のプログラムでは、まずエポックからの経過秒数を取得し、それをctime()関数の引数として渡すことで、現在のローカル時刻を取得しています。
Pythonスクリプトの実行を一時停止する
場合によっては、Pythonスクリプトの実行速度を遅くしたり、遅延させたりしたいことがあります。例えば、forループで数値をゆっくりと順番に表示したいケースなどが挙げられます。
そのような場合は、timeモジュールのsleep()関数を使用します。
サンプルコード
import time
for i in range(1, 6):
print(i)
time.sleep(1)上記のプログラムは、1から5までの数値を表示し、次の数値を表示する前に1秒間待機します。
このようにすることで、出力画面にすべての内容が一瞬で表示されるのを防ぎ、処理の流れを視覚的に確認できるようになります。
struct_timeオブジェクトとしてローカル時刻を表示する
timeモジュールを扱っていると、struct_timeオブジェクトに頻繁に出会うことに気づくでしょう。これは年・月・日・時・分・秒などの日時情報を属性として持つ、名前付きタプルの一種です。
独自のstruct_timeオブジェクトを作成する場合は、以下のような構文になります。
time.struct_time(tm_year=2021, tm_mon=1, tm_mday=31,
tm_hour=9, tm_min=28, tm_sec=56,
tm_wday=6, tm_yday=31, tm_isdst=0)各属性の意味は以下の通りです。
- tm_year: 年(例:2021)
- tm_mon: 月(1〜12)
- tm_mday: 日(1〜31)
- tm_hour / tm_min / tm_sec: 時・分・秒
- tm_wday: 曜日(0が月曜日、6が日曜日)
- tm_yday: 年初からの通算日数
- tm_isdst: 夏時間かどうかのフラグ
struct_timeオブジェクトの概要がわかったところで、実際にローカル時刻を表示してみましょう。
サンプルコード
import time
seconds = time.time()
curr_time = time.localtime(seconds)
print(curr_time)
print("Current year -> ", curr_time.tm_year)上記の例では、localtime()関数でstruct_timeオブジェクトを取得し、その各属性にアクセスしています。他の属性にも同じ要領でアクセスできるので、ぜひ試して動作を確認してみてください。
文字列データをstruct_timeに変換する
文字列形式の時刻データをstruct_timeオブジェクトに変換したい場合もあります。その際はstrptime()関数を使用し、第2引数にフォーマット指定子を渡します。
サンプルコード
import time example = "17 July 2001" ans = time.strptime(example, "%d %B %Y") print(ans)
実行結果
time.struct_time(tm_year=2001, tm_mon=7, tm_mday=17, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=198, tm_isdst=-1)
「%d」は日、「%B」は月の英語名、「%Y」は4桁の西暦を表すフォーマット指定子です。入力文字列の形式に合わせて適切な指定子を組み合わせることで、さまざまな形式の日付文字列を解析できます。
まとめ
本記事では、Pythonのtimeモジュールのさまざまな用途と機能について学びました。
具体的には、エポックからの経過秒数の取得、ctime()によるローカル時刻の表示、sleep()による実行の一時停止、struct_timeオブジェクトの扱い方、そして文字列からstruct_timeへの変換方法までを解説しました。
timeモジュールやその他の機能についてさらに詳しく知りたい方は、公式ドキュメント(https://docs.python.org/3/library/time.html)を参照してください。
-
PythonとMatplotlibで折れ線グラフの終端に注釈(ラベル)を付ける方法
PythonとMatplotlibを使えば、折れ線グラフの各線の終端に直接ラベル(注釈)を表示できます。これにより、凡例を目で追わなくても、どの線が何を表しているのか一目でわかる、読みやすいグラフを作成できます。 実装の手順 図のサイズを設定し、サブプロット間および周囲の余白を調整します。 データの行数を指定する変数 rows を初期化します。 Pandasのデータフレーム(長方形の表形式データ)を作成します。 データフレームの累積和(cumsum)を計算します。 plot()メソッドでデータフレームをプロットします。 各line(線オブジェクト)とname(列名)を反復処理し、線の終端に注
-
PythonのTkinterでファイル選択ダイアログを使い、選択したディレクトリの場所を表示・保存する方法
ダイアログボックスは、さまざまな種類のアプリケーションでおなじみのUI要素であり、ユーザーとの対話が重要となるアプリケーション開発において非常に役立ちます。ダイアログボックスを利用すれば、ユーザーにファイルの選択を求め、その後、ファイルの読み込みや書き込みといった操作を実行できます。Pythonでは、filedialogモジュールを使用することで、こうしたダイアログボックスを簡単に作成できます。 サンプルコード 以下の例では、ローカルディレクトリからファイルを選択するようユーザーに促し、選択されたファイルの場所(パス)をラベルウィジェットで表示するアプリケーションを作成します。 #Import