時間モジュールには、主に日付と時刻の関数を提供するさまざまなクラスと関数が含まれています。このモジュールは、日付と時刻を文字列にフォーマットする機能だけでなく、文字列から日付と時刻を回復する機能も提供します。
Pythonインタラクティブインタープリターにtimeモジュールをインポートし、[e for e in dir(time)if not e.startswith( '_')]コマンドを入力して、モジュールに含まれるすべての属性と関数を表示します。 :
[ e for e indir(time)if not e.startswith('_')]['altzone','asctime','clock','ctime','daylight','get_clock_info','gmtime','localtime','mktime','monotonic','perf_counter','process_time','sleep','strftime','strptime','struct_time','time','timezone','tzname']
time.struct_timeクラスはtimeモジュールで提供されます。このクラスは時間オブジェクトを表します。主に9つの属性が含まれています。各属性の情報を次の表に示します。
表1time.struct_timeクラスの各属性の意味
フィールド名 | フィールドの意味 | 値 |
---|---|---|
tm_year | year | 2017、2018など |
tm_mon | 月 | 2、3など。範囲は1〜12 |
tm_mday | Day | 2、3など、範囲は1〜31 |
tm_hour | Hour | 2、3など、範囲は0〜23 |
tm_min | minutes | 2、3など、範囲は0〜59 |
tm_sec | seconds | 2、3など、範囲は0〜59 |
tm_wday | week | 月曜日は0、範囲は0〜6 |
tm_yday | 1年の年の日 | たとえば、65、範囲1〜366 |
tm_isdst | 昼光節約時間 | 0、1、または-1 |
たとえば、Pythonはtime.struct_time(tm_year = 2018、tm_mon = 5、tm_mday = 2、tm_hour = 8、tm_min = 0、tm_sec = 30、tm_wday = 3、tm_yday = 1、tm_isdst = 0)を使用して時間を明確に表すことができます。 。
さらに、Pythonは、時間を表すために9つの要素を含むタプルを使用することもできます。このタプルの9つの要素は、struct_timeオブジェクトの9つの属性と1対1で対応しています。たとえば、プログラムは(2018、5、2、8、0、30、3、1、0)を使用して時間を表すことができます。
日付と時刻モジュールで一般的に使用される関数は次のとおりです。
time.asctime([t]):タイムタプルまたはstruct_timeをタイムストリングに変換します。パラメータtが指定されていない場合、現在の時刻がデフォルトで変換されます。
time.ctime([secs]):秒で表される時間を時間文字列に変換します。
time.gmtime([secs]):秒で表される時間をstruct_timeオブジェクトに変換します。パラメータが渡されない場合は、現在の時刻が使用されます。
time.localtime([secs]):秒で表される時間を現在の時刻を表すstruct_timeオブジェクトに変換します。パラメータが渡されない場合は、現在の時刻が使用されます。
time.mktime(t):これはlocaltimeの逆関数であり、struct_timeオブジェクトまたはタプルによって表される時間を1970年1月1日の0:00から経過した秒数に変換するために使用されます。
time.perf_counter():パフォーマンスカウンターの値を返します。すぐに。
time.process_time():現在のプロセスがCPUを使用している時間を返します。すぐに。
time.sleep(secs):数秒間一時停止し、何もしません。
time.strftime(format [、t]):タイムタプルまたはstruct_timeオブジェクトを指定された形式のタイムストリングにフォーマットします。パラメータtが指定されていない場合、現在の時刻がデフォルトで変換されます。
time.strptime(string [、format]):文字列フォーマットの時間をstruct_timeオブジェクトに解析します。
time.time():1970年1月1日の0:00から経過した秒数を返します。
time.timezone:ローカルタイムゾーンのタイムオフセットを秒単位で返します。
time.tzname:ローカルタイムゾーンの名前を返します。
次のプログラムは、時間ブロックの機能を示しています。
import time
# 現在の時刻を時間文字列に変換する
print(time.asctime())
# 指定された時間を時間文字列に変換します。時間タプルの最後の3つの要素は設定されません
print(time.asctime((2018,2,4,11,8,23,0,0,0))) # Mon Feb 411:08:232018
# 秒で表される時間を時間文字列に変換します
print(time.ctime(30)) # Thu Jan 108:00:301970
# 秒で表される時間を構造化に変換します_時間オブジェクト。
print(time.gmtime(30))
# 現在の時刻を構造に変換する_時間オブジェクト。
print(time.gmtime())
# 秒数で表される時間を現在の時間を表す構造に変換します_時間オブジェクト
print(time.localtime(30))
# タプル形式の時間を秒で表される時間に変換します
print(time.mktime((2018,2,4,11,8,23,0,0,0))) # 1517713703.0
# パフォーマンスカウンターの値を返します
print(time.perf_counter())
# 現在のプロセスで使用されているCPU時間を返します
print(time.process_time())
# time.sleep(10)
# 現在の時刻を指定された形式の文字列に変換します
print(time.strftime('%Y-%m-%d %H:%M:%S'))
st ='2018年3月20日'
# 指定した時間文字列を復元して構造化する_時間オブジェクト。
print(time.strptime(st,'%Y年%m月%d日'))
# 1970年1月1日の0:00から経過した秒数を返します。
print(time.time())
# ローカルタイムゾーンのタイムオフセットを秒単位で返します
print(time.timezone) #中国の東馬地区に輸出-28800
上記のプログラムを実行すると、次の出力が表示されます。
Fri Feb 2211:28:392019
Mon Feb 411:08:232018
Thu Jan 108:00:301970
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=30, tm_wday=3, tm_yday=1,
tm_isdst=0)
time.struct_time(tm_year=2019, tm_mon=2, tm_mday=22, tm_hour=3, tm_min=28, tm_sec=39, tm_wday=4, tm_yday=53,
tm_isdst=0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=30, tm_wday=3, tm_yday=1,
tm_isdst=0)1517713703.00.00.1406252019-02-2211:28:39
time.struct_time(tm_year=2018, tm_mon=3, tm_mday=20, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=79,
tm_isdst=-1)1550806119.4960592-28800
タイムモジュールの2つの関数strftime()とstrptime()は互いに逆の関数であり、strftime()はstruct_timeオブジェクトまたはタイムタプルをタイムストリングに変換するために使用され、strptime()関数はタイムストリングを変換するために使用されます。これはstruct_timeオブジェクトです。どちらの関数もフォーマットテンプレートの記述を含みます。たとえば、上記のプログラムでは、%Yは年、%mは月、%dは日、%Hは時、%Mは分、%Sは秒を表します。これら2つの関数に必要な時間形式文字列でサポートされているコマンドを次の表に示します。
指示 | 意味 |
---|---|
%a | Sun for Sundayなど、曜日のローカライズされた省略名 |
%A | ローカライズされた曜日のフルネーム |
%b | 1月の1月など、月のローカライズされた省略名 |
%B | ローカライズされた月のフルネーム |
%c | ローカライズされた日付と時刻の表現 |
%d | はその月の日の値を表します、Fan Gu:01〜31 |
%H | 24時間システムの時間を表し、範囲:00〜23 |
%I | 12時間の時計で時間を表し、範囲:01〜12 |
%j | 年の日、範囲:001〜366 |
%m | は月の値を表し、範囲:01〜12 |
%M | は分の値を表し、範囲:00〜59 |
%p | 朝または午後のローカリゼーション。 strptime()関数を使用し、%I命令を使用して時間を解析する場合、%pは時間フィールドにのみ影響します |
%S | は分の値を表し、範囲は00〜61です。範囲は確かに00〜61であり、60は飛躍秒のタイムスタンプを表す場合に有効であり、61はいくつかの歴史的な理由によって引き起こされます |
%U | は、年の最初の数週間を表し、日曜日を週の最初の日とし、00から53の範囲です。このように、その年の最初の日曜日は最初の週と見なされます。 strptime()関数を使用して時間文字列を解析する場合、コマンドは曜日と年の両方が同時に指定されている場合にのみ有効になります |
%w | は曜日の数値を表し、範囲は0〜6です。0は日曜日を表します |
%W | は、年の最初の数週間を表し、月曜日が週の最初の日であり、範囲は00から53です。このように、その年の最初の月曜日は最初の週と見なされます。 strptime()関数を使用して時間文字列を解析する場合、コマンドは曜日と年の両方が同時に指定されている場合にのみ有効になります |
%x | ローカライズされた日付表現 |
%X | ローカライズされた時間表現 |
%y | 年の省略形、範囲:00〜99、たとえば、2018は18と省略されます |
%Y | 今年の完全な形式。 2018など |
%z | タイムゾーンオフセットを表示 |
%Z | タイムゾーン名(タイムゾーンが利用できない場合は空になります) |
%% | %記号を表すために使用されます |
ナレッジポイントの拡張:
タイムモジュール
このモジュールは、さまざまな時間関連の機能を提供します。関連する機能については、datetimeおよびcalendaratモジュールを参照してください。
このモジュールは、すべてのプラットフォームですべての機能を提供するわけではなく、プラットフォームによって異なります
以下は、いくつかの用語と規則の説明です
上記は、Pythonタイムモジュールの詳細を学ぶ方法です。Pythonタイムモジュールの詳細については、ZaLou.Cnの他の関連記事に注意してください。
Recommended Posts