Python の time モジュールは次のように使用します。

        この章では、Python の time モジュール time の一般的な関数を紹介します。time、datetime、calendar モジュールは、時刻と日付の点で Python で最も広く使用されているモジュールです。time モジュールの場合、最もよく使用される関数は次の 5 つです: time.sleep、time.time()、time.strftime、time.strptime、time.perf_counter()。パソコンの時刻を変えることでさまざまな機能を試すことができ、実際に実践してみると理解しやすくなります。

目次

1.time.localtime()

2.time.ctime()

3.time.time()

4.time.strftime()

5.time.strptime()

6.time.perf_counter()

7. time.sleep()

8. time.gmtime()

9. time.asctime()

10.time.mktime()

終わり


1
time.localtime()
現地時間を取得します。返されるタイムタプル(システムによって設定されたタイムゾーンに従って取得)
2
time.ctime()
現地時間を取得します(文字列を返します。内容は中国の習慣に準拠していません)
3√
時間.時間()
現在のタイムスタンプを取得する
4√
時間.strftime
時間タプル/タプルを文字列に変換します
5√
時間.strptime
文字列形式をタイムタプルに変換します
6√
time.perf_counter()
開始・終了のタイミング
7√
時間.睡眠
睡眠時間を設定する
8
time.gmtime()
経度 0°、UTC タイムゾーンの時刻を取得し、タイムタプル (UK GMT) を返します。
9
時間.asctime
指定された時間の文字列を取得します。返される結果は time.ctime() と同じ形式であり、中国の習慣に準拠していません。
10
time.mktime
タイムスタンプを返します。(時間指定可能です)

1.time.localtime(秒)

        現地時間を取得します。返されるタイムタプル(システムによって設定されたタイムゾーンに従って取得)

import time
a = time.localtime()
print(a)

        秒パラメータが入力されていない場合は、現在のシステム時刻が返されます。秒が入力されている場合は、指定された秒の時刻が返されます。秒はタイムスタンプであり、負の値にすることはできません。タイムスタンプについては後で詳しく紹介するか、詳細については「タイムスタンプ」の記事を参照してください。

        現在の時刻は、2023 年 4 月 18 日の 14:14 です。図 1 からわかるように、time.localtime() は年、月、日、時、分、秒、曜日を出力します (tm_wday +1) )、これは 1 年の日付 (tm_yday)、夏時間 (tm_isdst) かどうかです。

        コンピュータは tm_wday を 0 から計算するため、月曜日が 0、0 が月曜日となるため、tm_wday を基準に +1 したものが実際の曜日になります。テスト後 (コンピューターの時刻を 1 月 1 日に変更して実行して確認します)、tm_yday は 1 から始まるため、tm_yday は正しく、+1 する必要はありません。

        夏時間。現在中国では使用されていません。0 は、現在時間が夏時間ではないことを示します。この概念はヨーロッパで初めて生まれ、イギリスの建築家ウィリアム・ヴィレットが最初に提案した「夏時間制度」は、人々が早く寝て睡眠時間を短縮するために、夜間の時間を1時間「早める」ことを提唱しました。照明の量を減らしてエネルギーを節約し、エネルギーをさらに増やします。導入後は、毎年 6,400 万ポンドのキャンドルが節約されます。しかし、スマートフォン時代の到来により、サマータイムは減少し始めました。中国も1986年に一時期サマータイムを導入しましたが、国情やインテリジェンスの時代などの理由で目立った効果はなく、1992年までに中国のサマータイム時代は終了しました。

2.time.ctime(秒)

        現地時間を取得します(文字列を返しますが、中国の習慣とはまったく一致しません)

a = time.ctime()
print(a)

        秒パラメータが入力されていない場合は現地時間が返され、秒が入力されている場合は指定された秒の時刻が返され、秒はタイムスタンプであり、負の値にすることはできません。タイムスタンプについては後で詳しく紹介するか、詳細については「タイムスタンプ」の記事を参照してください。

        中国語の習慣は年、月、日、時、分、秒、週ですが、返されるのは週、月、日、時、分、秒、年です。この関数はほとんど使用されません。どうしても使用したい場合は、.split() を使用して分離して抽出できます。

3.time.time()

        現在のタイムスタンプを取得します。

a = time.time()
print(a)

        タイムスタンプ。1970 年 1 月 1 日、英国グリニッジ、経度 0 度の 00:00:00 から現在までの経過秒数として定義されます。中国は東 8 区にあり、グリニッジより 8 時間早いため、グリニッジが 0 時であるとき、中国はすでに 8 時であるため、中国のタイムスタンプは 1970 年 1 月 1 日、北京時間 8:0 になります。 00 秒 それから経過した秒数。

        タイムスタンプには「枯渇した」日があります。32 ビットのタイムスタンプ記憶構造によれば、正しく表現できる最大秒数は 2147483647 (2 の 31 乗、最初のビットは符号ビット) です。 、イギリスのグリニッジ行き 時刻は 2038 年 1 月 19 日の 03:14:07、つまり北京時間の 2038 年 1 月 19 日の 11:14:07 です。その時点では、すべての 32 ビット デバイスと 32 ビット プログラムが深刻な影響を受けます。現在のアプローチは、64 ビットの普及を加速し、32 ビットのデバイスとプログラムを適時に廃止し、経済的損失を削減することです。テクノロジーの急速な発展に伴い、科学者がカーネル オーバーフローを完全に移行する方法を発見できることが期待されています。

拡張情報 ( Baidu Encyclopedia より - 2038 年問題):

        C言語では時刻と日付を表すのにtime_tが使われており、Pythonは母国語であるC言語をベースに開発されています。32 ビット システムでは、time_t が表すことができる最大値は 0x7ffffffff です。time_t が最大値をとる場合、システム時刻は 2038-01-19 03:14:07 であることを意味します。時刻が戻ると、 32 ビット整数のオーバーフロー。時間が負の数に「ラップアラウンド」され、-2147483648 秒 (1901 年 12 月 13 日のグリニッジ標準時 20:45:52 を表す) になり、アプリケーションで重大な時刻エラーが発生し、操作できません。 。

        サーバーや最新のコンピューターでは、64 系オペレーティング システムが置き換えられ、2038 年のタイムスタンプの問題はなくなります。組み込みデバイスに関しては、依然として多数の 32 ビット システムが世界中で稼働しており、これらのシステムが 2038 年までに名誉ある形で廃止されるとは誰も保証できません。さらに、64 ビット OS では 32 ビット アプリケーションも動作するため、2038 年問題も人々に脅威をもたらしており、過小評価することはできません。

4. time.strftime(フォーマット、タプル)

        時間タプルを文字列に変換します。私たちはこれら 2 つの形式を別々に実験しました。

        (1) 時間タプルを文字列に変換します。

a = time.localtime()
b = time.strftime('%Y/%m/%d %H:%M:%S',a)        # 把时间元组转换成字符串
print(a)
print(b)
print(type(b))

        (2) タプルを文字列に変換します。

a = (2023,1,1,19,13,34,0,0,0)
b = time.strftime('%Y/%m/%d %H:%M:%S',a)        # 把元组转换成字符串
print(a)
print(b)
print(type(b))

        タプルを入力する場合、タプルは<年、月、日、時、分、秒、週、曜日、夏時間の有無>の9個の値に対応しているため、内容は9要素となります。 、最後の 3 桁は不明なので、0 を入力できます。入力されない場合は、エラーが報告されます。

        %Y は年、%m は月、%d は日、%H は時、%M は分、%S は秒を意味します。中央は / : スペースなどの英語の句読点で区切ることができますが、中国語と中国語の記号は現時点ではサポートされていません。

5. time.strptime(文字列、形式)

        文字列形式をタイムタプルに変換します

a = '2023/4/18 19:37:56'
b = time.strptime(a,'%Y/%m/%d %H:%M:%S')
print(b)

        これを時刻タプルに変換して、指定された時間が <曜日> であるか <年間の日> であるかを確認します。これは非常に簡単です。

6.time.perf_counter()

        開始/終了のタイミング。(プログラムの実行計算に時間がかかります)

a = time.perf_counter()

ss = 0
for i in range(1,100001):
    ss += i
print('1到100000的总和为:',ss)

b = time.perf_counter()
print('计算所用时间:',b-a)

        1 から 100000 までの合計を計算するのに必要な時間は 0.008875 秒であり、time.perf_counter() は非常に正確であることがわかります。

7. time.sleep(秒)

        プログラムが一定期間一時停止した後も実行を継続できるように、スリープ時間を設定します。負の数は指定できません。

a = time.perf_counter()

ss = 0
for i in range(1,100001):
    ss += i
print('1到100000的总和为:',ss)

time.sleep(5)

b = time.perf_counter()
print('计算所用时间:',b-a)

        プログラムが time.sleep() まで実行されると、5 秒間一時停止し、その後、次の操作の実行を続けます。この機能はあまり効果がないようですが、クローラーの分野では欠かせない役割であり、クロール前に一定時間一時停止しておけば相手のサーバーに過度な負荷をかけずに済みます。

8. time.gmtime(秒)

        経度 0°、UTC タイムゾーンの時刻を取得し、時刻タプルを返します (つまり、英国 GMT に戻ります)。

a = time.gmtime()
print(a)

        現在時刻は 2023 年 4 月 18 日の 20:12 で、出力時刻は 2023 年 4 月 18 日の 12:12 となり、8 時間減ります。これは上記 3 で述べた時差によるものです。イギリスの GMT は中国が位置する東 8 区の時間より 8 時間遅れており、出力は正確にイギリスの GMT になります。

        パラメータ秒はタイムスタンプであり、負の値にすることはできません。タイムスタンプについては、上記のセクション 3 に詳細な説明があります。パラメータが入力されない場合は、デフォルトで現在の GMT が出力されます。指定されたタイムスタンプが入力された場合は、次のように指定されたタイムスタンプの GMT が出力されます。

a = time.gmtime(1686213456)
print(a)

        タイムスタンプ 1686213456 秒は、英国グリニッジ標準時、2023 年 6 月 8 日の 37 分 36 秒です。北京時間を取得したい場合は、8 時間を追加するだけです。

9. time.asctime(タプル)

        指定された時間の文字列を取得します。返される結果は time.ctime() と同じ形式であり、中国人の使用習慣に従っていません。

a = time.asctime()             # 和time.ctime()一样
print(a)

tup = (2023,5,19,11,22,45,0,0,0)
b = time.asctime(tup)
print(b)

        パラメータを入力しない場合は time.ctime() と同じ、タプルを入力した場合はタプル内の指定時刻を返す タプルは 4 と同じ 内容は 9 要素でエラー1 つが欠けている場合は報告されます。この機能はほとんど使用されません。

10.time.mktime(タプル)

        指定された時刻のタイムスタンプを返します。時間タプルまたはタプルを入力できます。

a = time.localtime()              # 获得当前时间的时间元组
print(a)
b = time.mktime(a)               # 传入当前时间的时间元组
print(b)
tup = (2023,5,19,11,22,45,0,0,0)
c = time.mktime(tup)             # 传入元组
print(c)

        b のように、現在の時刻の時刻タプルを取得します。これは time.time() と同じです。 c のように、指定された時刻の時刻タプルを取得します。タプル内の要素の数も 9 である必要があります。いずれかが欠落している場合はエラーが報告されます。

終わり

        time モジュールで一般的に使用される関数は、time.sleep、time.time()、time.strftime、time.strptime、time.perf_counter() のみで、その他はほとんど使用されません。ただし、time モジュールで最も不可欠なものは、sleep time.sleep、timestamp time.time()、timing time.perf_counter() です。他のほとんどすべてのモジュールは、datetime ライブラリを使用する方が便利か、同様に便利です。頭に浮かぶのは日時です。時間はあまり多くの「共有」を必要としません。作業で使用される特定の時間、日付と文字列の間の変換は次のとおりです。ここで、dt は datetime.datetime です。

画像はインターネットから来ました

おすすめ

転載: blog.csdn.net/m0_71559726/article/details/130219855