この記事では、time モジュールと、このモジュールによって提供されるさまざまな関数について、良い例を使用して説明します。
名前が示すように、Python 時間モジュールを使用すると、時間を操作できます。 パイソン 。現在時刻の取得、プログラムの実行の一時停止などの機能が可能です。そのため、このモジュールを開始する前に、モジュールをインポートする必要があります。
タイムモジュールのインポート
time モジュールは Python の標準ユーティリティ モジュールに付属しているため、外部にインストールする必要はありません。を使用して簡単にインポートできます インポートステートメント 。
import time>
エポックとは何ですか?
エポックは時間の開始点であり、プラットフォームに依存します。 Windows およびほとんどの Unix システムでは、エポックは 1970 年 1 月 1 日の 00:00:00 (UTC) であり、うるう秒はエポックからの秒数にカウントされません。特定のプラットフォームでエポックが何であるかを確認するには、使用できます time.gmtime(0) 。
例: エポックの取得
コードでは、time>結果を出力するモジュールtime.gmtime(0)>これは、Unix エポック (1970 年 1 月 1 日、00:00:00 UTC) の GMT (グリニッジ標準時) タイムゾーンの時刻を表します。
Python3
import> time> print>(time.gmtime(>0>))> |
>
>
出力:
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
注記: エポック以前の時間は秒単位で表すことができますが、負の値になります。たとえば、1969 年 12 月 31 日は -86400 秒と表されます。
現在時刻をエポックからの秒数で取得する
時間.時間() メソッドは、エポックからの秒数で現在時刻を返します。浮動小数点数を返します。
例: エポックからの現在時刻 (秒単位)
コードでは、time>Unix エポック (1970 年 1 月 1 日) からの現在時刻を秒単位で取得するモジュール。
Python3
import> time> curr>=> time.time()> print>(>'Current time in seconds since epoch ='>, curr)> |
>
>出力
Current time in seconds since epoch = 1627908387.764925>
秒から時刻文字列を取得する
time.ctime() この関数は 24 文字の時刻文字列を返しますが、引数として秒を受け取り、指定された秒までの時間を計算します。引数が渡されない場合は、現在までの時間が計算されます。
例: 秒から時刻文字列を取得する
コードでは、time>指定されたタイムスタンプ (1627908313.717886) を人間が判読できる日付と時刻の形式に変換するモジュール。
Python3
import> time> curr>=> time.ctime(>1627908313.717886>)> print>(>'Current time:'>, curr)> |
>
>出力
Current time: Mon Aug 2 12:45:13 2021>
プログラムの実行の遅延
を使用して実行を遅らせることができます time.sleep() 方法。このメソッドは、引数で指定された時間プログラムの実行を停止するために使用されます。
例: Python でのプログラムの実行時間を遅らせる。
このコードでは、time>を使用して 1 秒の遅延を導入するモジュール time.sleep(1)> 4 回繰り返すループ内。
Python3
import> time> for> i>in> range>(>4>):> >time.sleep(>1>)> >print>(i)> |
>
>出力
0 1 2 3>
time.struct_time クラス
構造体時間 クラスは、ローカル時間、つまり非エポカルタイムスタンプにアクセスするのに役立ちます。インデックスと属性名の両方で値にアクセスできる名前付きタプルを返します。そのオブジェクトには次の属性が含まれています –
| 索引 | 属性名 | 価値観 |
|---|---|---|
| 0 | tm_年 | 0000、…、9999 |
| 1 | tm_mon | 1、2、…、11、12 |
| 2 | tm_mday | 1、2、…、30、31 |
| 3 | tm_hour | 0、1、…、22、23 |
| 4 | tm_min | 0、1、…、58、59 |
| 5 | tm_sec | 0、1、…、60、61 |
| 6 | tm_wday | 0、1、…、6;日曜日は6時 |
| 7 | tm_yday | 1、2、…、365、366 |
| 8 | tm_isdst | 0、1、または -1 |
このクラスにはさまざまな関数が含まれています。それぞれの機能について詳しく説明します。
time.localtime() メソッド
現地時間() メソッドは、ローカル時間で struct_time オブジェクトを返します。エポックから経過した秒数を引数として受け取ります。秒パラメータが指定されていない場合は、time.time() メソッドによって返される現在時刻が使用されます。
例: エポックから現地時間を取得する
コードでは、time>指定されたタイムスタンプ (1627987508.6496193) を time.struct_time> 対応する日付と時刻を表すオブジェクト。
bash 配列
Python3
import> time> obj>=> time.localtime(>1627987508.6496193>)> print>(obj)> |
>
>
出力
time.struct_time(tm_year=2021, tm_mon=8, tm_mday=3, tm_hour=16, tm_min=15, tm_sec=8, tm_wday=1, tm_yday=215, tm_isdst=0)
time.mktime() メソッド
time.mktime() time.localtime() の逆関数で、エポックからの秒数で表される時間をローカル時間の time.struct_time オブジェクトに変換します。
例: 変換する 構造時間 エポックからの秒数を対象とする
このコードでは最初にtime>指定されたタイムスタンプ (1627987508.6496193) を time.struct_time> GMT (グリニッジ標準時) タイムゾーンのオブジェクトを使用して time.gmtime()> 。 次に、それを使用します time.mktime()> これを変換するには time.struct_time> オブジェクトをタイムスタンプに戻します。
Python3
import> time> obj1>=> time.gmtime(>1627987508.6496193>)> time_sec>=> time.mktime(obj1)> print>(>'Local time (in seconds):'>, time_sec)> |
>
>出力
Local time (in seconds): 1627987508.0>
time.gmtime() メソッド
time.gmtime() エポックからの秒数で表される時間を、 tm_isdst 属性が常に 0 である UTC の time.struct_time オブジェクトに変換するために使用されます。 秒パラメーターが指定されない場合は、 time.time() メソッドによって返された現在時刻が使用されます。
例: の使用 time.gmtime() 方法
コードでは、time>指定されたタイムスタンプ (1627987508.6496193) を time.struct_time> GMT (グリニッジ標準時) タイムゾーンでの対応する日付と時刻を表すオブジェクト。
Python3
import> time> obj>=> time.gmtime(>1627987508.6496193>)> print>(obj)> |
>
>
出力
time.struct_time(tm_year=2021, tm_mon=8, tm_mday=3, tm_hour=10, tm_min=45, tm_sec=8, tm_wday=1, tm_yday=215, tm_isdst=0)
time.strftime() メソッド
time.strftime() この関数は、gmtime() または localtime() によって返された時刻を表すタプルまたは struct_time を、format 引数で指定された文字列に変換します。 t が指定されていない場合は、localtime() によって返される現在時刻が使用されます。形式は文字列である必要があります。 t のいずれかのフィールドが許容範囲外の場合、ValueError が発生します。
例: 変換中 構造時間 strftime() メソッドを使用してオブジェクトを文字列に変換する
コードでは、 gmtime> からの関数time>を使用して、指定されたタイムスタンプ (1627987508.6496193) をフォーマットされた文字列に変換するモジュールstrftime>。出力は、GMT (グリニッジ標準時) タイムゾーンの日付と時刻を、形式文字列で指定された形式で表します。
Python3
マップJavaとは何ですか
from> time>import> gmtime, strftime> s>=> strftime(>'%a, %d %b %Y %H:%M:%S'>,> >gmtime(>1627987508.6496193>))> print>(s)> |
>
>出力
Tue, 03 Aug 2021 10:45:08>
time.asctime() メソッド
time.asctime() メソッドは、 time.gmtime() または time.localtime() メソッドによって返される時間を表すタプルまたは time.struct_time オブジェクトを次の形式の文字列に変換するために使用されます。
Day Mon Date Hour:Min:Sec Year>
例: タプルを time.struct_time オブジェクトから文字列に変換する
このコードでは、time>を使用して、指定されたタイムスタンプ (1627987508.6496193) を人間が判読できる日付と時刻の形式に変換するモジュール time.asctime()> 。 これは、GMT (グリニッジ標準時) タイムゾーンとローカル タイムゾーンの両方で行われます。
Python3
import> time> obj>=> time.gmtime(>1627987508.6496193>)> time_str>=> time.asctime(obj)> print>(time_str)> obj>=> time.localtime(>1627987508.6496193>)> time_str>=> time.asctime(obj)> print>(time_str)> |
>
>出力
Tue Aug 3 10:45:08 2021 Tue Aug 3 10:45:08 2021>
time.strptime() メソッド
time.strptime() メソッドは、時間を表す文字列を struct_time オブジェクトに変換します。
例: 文字列を次のように変換します 構造時間 物体。
このコードでは、time>日付と時刻を表すフォーマットされた文字列を解析し、それを time.struct_time> 物体。のtime.strptime()>この目的のために関数が使用されます。
Python3
import> time> string>=> 'Tue, 03 Aug 2021 10:45:08'> obj>=> time.strptime(string,>'%a, %d %b %Y %H:%M:%S'>)> print>(obj)> |
>
>
出力
time.struct_time(tm_year=2021, tm_mon=8, tm_mday=3, tm_hour=10, tm_min=45, tm_sec=8, tm_wday=1, tm_yday=215, tm_isdst=-1)