ホームページ  >  記事  >  バックエンド開発  >  Pythonのtimeモジュールの使用例を詳しく解説

Pythonのtimeモジュールの使用例を詳しく解説

WBOY
WBOYオリジナル
2016-06-16 08:42:051161ブラウズ

この記事では、Python の組み込み時間モジュールの使用法について詳しく説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです。

1. はじめに

時間モジュールは、動作時間に関するさまざまな関数を提供します

注: 時間を表現するには一般に 2 つの方法があります:

1 つ目はタイムスタンプ方式 (1970.1.1 00:00:00 を基準とした秒単位のオフセット) で、タイムスタンプは一意です

2 番目のものは、合計 9 つの要素を持つ配列 (struct_time) の形式で表され、同じタイムスタンプの struct_time がタイム ゾーンの違いにより異なることを示します

年 (4 桁、例: 1998)
月 (1-12)
日 (1-31)
時間 (0-23)
分 (0-59)
秒 (0-59)
平日(0~6、月曜は0)
ユリウス日 (年間の日、1 ~ 366)
DST (夏時間) フラグ (-1、0、または 1) 夏時間であるかどうか
DST フラグが 0 の場合、時間は通常のタイムゾーンで与えられます。
1 の場合、時刻は DST タイムゾーンで指定されます。
-1 の場合、mktime() は日付と時刻に基づいて推測する必要があります。

2. 機能紹介

1.asctime()

asctime([タプル]) -> 文字列
struct_time (デフォルトは現在時刻) を文字列
に変換します。 時刻タプルを文字列に変換します (例: 'Sat Jun 06 16:26:11 1998')。
時刻タプルが存在しない場合、localtime()
によって返される現在時刻
が使用されます。
2.クロック()

クロック() -> 浮動小数点数
この関数には 2 つの関数があります。
初めて呼び出されたときに返されるのは、プログラムが実行されている実際の時間です。 2 回目以降の呼び出しでは、最初の呼び出しから今回の呼び出しまでの時間間隔が返されます

例:


import time 
if __name__ == '__main__': 
  time.sleep(1) 
  print "clock1:%s" % time.clock() 
  time.sleep(1) 
  print "clock2:%s" % time.clock() 
  time.sleep(1) 
  print "clock3:%s" % time.clock() 
出力:

clock1:3.35238137808e-006
clock2:1.00004944763
clock3:2.00012040636
最初のクロック出力はプログラムの実行時間です

2番目と3番目のクロック出力は、最初のクロックからの時間間隔です


3.睡眠(...)

睡眠(秒)

テスト後、スレッドの実行が一定時間遅延します。単位は秒ですが、ヘルプドキュメントに次のような分かりにくい文章があります
「引数は 1 秒未満の精度の浮動小数点数にすることができます。」

4.ctime(...)

ctime(秒) -> 文字列

タイムスタンプ (デフォルトは現在時刻) を時刻文字列
に変換します。 例:
time.ctime()
出力は次のようになります: 'Sat Mar 28 22:24:24 2009'


5.gmtime(...)

gmtime([秒]) -> (tm_year、tm_mon、tm_day、tm_hour、tm_min、tm_sec、tm_wday、tm_yday、tm_isdst)

タイムスタンプを UTC タイムゾーン (0 タイムゾーン) の struct_time に変換します。秒パラメーターが入力されていない場合は、現在時刻が変換基準として使用されます。

6.localtime(...)

localtime([秒]) -> (tm_year,tm_mon,tm_day,tm_hour,tm_min,tm_sec,tm_wday,tm_yday,tm_isdst)

タイムスタンプを現在のタイムゾーンの struct_time に変換します。秒パラメーターが入力されていない場合は、現在の時間が変換標準として使用されます。

7.mktime(...)

mktime(タプル) -> 浮動小数点数

struct_time をタイムスタンプに変換


8.strftime(...)

strftime(format[, tuple]) -> 文字列

指定された形式文字列
に従って、指定された struct_time (デフォルトは現在時刻) を出力します。 Python の時刻と日付の書式設定記号:
%y 2 桁の年表現 (00 ~ 99)
%Y は 4 桁の年 (000 ~ 9999) を表します
%m 月 (01-12)
%d 日 (0 ~ 31)
%H 24 時間形式の時間番号 (0 ~ 23)
%I 12 時間制 (01-12)
%M 分 (00=59)
%S 秒 (00-59)

%a ローカルの簡略化された曜日名

%ローカルの完全な週名
%b ローカルの簡略化された月の名前
%B ローカルの完全な月名
%c ローカルに対応する日付表現と時刻表現
%j 年間の日 (001-366)
%p 現地の午前または午後に相当
%U 年の週数 (00-53) 日曜日が週の始まりです
%w 週 (0-6)、日曜日が週の始まりです
%W 年の週数 (00-53) 月曜日が週の始まりです
%x ローカルの対応する日付表現
%X ローカル対応時間表現
%Z 現在のタイムゾーンの名前
%% %数値自体


9.strptime(...)

strptime(文字列、形式) -> struct_time

指定されたフォーマッタに基づいて時刻文字列を時刻の配列に変換します

例:
2009-03-20 11:45:39 対応する形式文字列は次のとおりです: %Y-%m-%d %H:%M:%S
Sat Mar 28 22:24:24 2009 対応する形式文字列は次のとおりです: %a %b %d %H:%M:%S %Y


10.time(...)

time() -> floating point number
返回当前时间的时间戳

三、疑点

1.夏令时

在struct_time中,夏令时好像没有用,例如
a = (2009, 6, 28, 23, 8, 34, 5, 87, 1)
b = (2009, 6, 28, 23, 8, 34, 5, 87, 0)
a和b分别表示的是夏令时和标准时间,它们之间转换为时间戳应该相关3600,但是转换后输出都为646585714.0
 
四、小应用

1.python获取当前时间

time.time() 获取当前时间戳
time.localtime() 当前时间的struct_time形式
time.ctime() 当前时间的字符串形式
  
2.python格式化字符串 

格式化成2009-03-20 11:45:39形式

time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) 

格式化成Sat Mar 28 22:24:24 2009形式

time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()) 

 
3.将格式字符串转换为时间戳

a = "Sat Mar 28 22:24:24 2009"
b = time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))

相信本文所述对大家的Python程序设计有一定的借鉴价值。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。