標準ライブラリtime、datetimeの使用
5601 ワード
timeライブラリ
timeライブラリの基本的な紹介 timeライブラリPythonでの処理時間の標準ライブラリコンピュータ時間の表現は、システム時間を取得し、出力をフォーマットする機能を提供するシステムレベルの正確なタイミング機能を提供し、プログラム性能分析timeライブラリが構造体に依存し、タイムスタンプと文字列の相互変換を行うための を提供する. timeライブラリには、time()ctime()gmtime()時間フォーマット:strftime()strptime()プログラムタイミング:sleep()perf_counter()
時間取得 time()現在のタイムスタンプ、すなわちコンピュータ内部の時間値、浮動小数点数 を取得する. ctime()は、現在の時間を取得し、読みやすいように表す、文字列 を返す. gmtime()現在時刻を取得し、コンピュータが処理可能な時間フォーマット として表す.
時間の書式設定
時間を合理的な方法でフォーマットする:文字列フォーマットのように、ディスプレイテンプレートディスプレイテンプレートが特定のフォーマット制御子からstrftime()を構成する方法が必要です.
時間の書式設定
strftime(tpl,ts)tplは、出力効果tsがコンピュータ内部の時間型変数であることを定義するフォーマットテンプレート文字列である
書式設定コントロール
%Y年0000~9999、例えば:1900%m月01~12、例えば:10%B月名January~December、例えば:April%b月名略称Jan~Dec、例えば:Apr%d日付01~31、例えば:25%A週Monday~Sunday、例えば:Wednesday%a週略称Mon~Sun、例えば:Wed%H時間(24 h制)00~23、例えば:12%h時間(12 h制)01~12、例えば:7%p上/午後AM、PM、例えば:PM%M分00~59、例えば:26%S秒00~59、例えば:26
プログラムタイミングアプリケーションプログラム計時アプリケーション広範プログラム計時とは、起動停止動作が経過した時間を測定するプロセス測定時間を指す:perf_counter()生成時間:sleep() perf_counter()は、CPUレベルの正確な時間カウント値を返す.単位は秒である.このカウント値の起点が不確定であるため、連続呼び出し差値は の意味を持つ. sleep(s)s擬休眠時間、単位は秒、浮動小数点数
datetimeライブラリ
datetimeモジュールはdateとtimeモジュールの集合に用いられ、datetimeには2つの定数があり、MAXYEARとMINYEAR、それぞれ9999と1である.Datetimeモジュールは5つのクラスを定義し、それぞれ datetime.date:日付を表すクラス datetime.Datetime:日時を表すクラス datetime.time:時間を表すクラス datetime.timedelta:時間間隔、すなわち2つの時点の間隔 を表す datetime.tzinfo:タイムゾーンに関する情報 datetime.date
dateクラスには3つのパラメータがあり、datetime.date(year,month,day)、year-month-dayメソッドを返します. datetime.date.ctime()、Sun Apr 16 00:00:00:00 2017 などのフォーマットを返します. datetime.date.fromtimestamp(timestamp)は、与えられた時間に基づいて、dateオブジェクトを返します.*datetime.date.today()作用は同じ datetime.date.isocalendar():フォーマット(year,month,day)のメタグループを返し、(2017,15,6) datetime.date.isoformat():YYYY-MM-DD のような戻りフォーマット datetime.date.isoweekday():指定された日付の曜日(0-6)、月曜日=0、日曜日=6 を返します. datetime.date.replace(year,month,day):指定された日付を置き換えますが、元の日付 は変更されません. datetime.date.strftime(format):日付時間を所定のformatでフォーマットします. datetime.date.timetuple():日付に対応するtimeを返す.struct_timeオブジェクトtime.struct_time(tm_year=2017, tm_mon=4, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=105, tm_isdst=-1) datetime.date.weekday():日付を返す週 datetime.datetime
datetimeクラスには多くのパラメータがあり、datetime(year,month,day[,hour[,minute[,second[,microsecond[,tzinfo]]]]])、戻り年月日、時間分秒 datetime.datetime.ctime() datetime.datetime.now().date():現在の日時を返す日付部分 datetime.datetime.now().time():現在の日時を返す時間部 datetime.datetime.fromtimestamp() datetime.datetime.Now():現在のシステム時間 を返します. datetime.datetime.replace() datetime.datetime.strftime():日付フォーマットから文字列フォーマット に変換 datetime.datetime.strptime():文字列フォーマットから日付フォーマット に変換
datetime.time
timeクラスには5つのパラメータがあり、datetime.time(hour,minute,second,microsecond,tzoninfo)は、08:29:30を返します.datetime.time.replace() 2.datetime.time.strftime(format):format形式で時間3を返す.datetime.time.tzname():タイムゾーン名を返します.datetime.time.utcoffset():タイムゾーンを返す時間オフセット量
datetime.timedelta
datetime.datetime.timedeltaは、2つの日付の差を計算するために使用します.たとえば、次のようにします.
datetime.tzinfo
timeライブラリの基本的な紹介
import time
time.()
時間取得
>>>time.time()
1516939876.6022282
>>>time.ctime()
'Fri Jan 26 12:11:16 2018'
>>>time.gmtime()
time.struct_time(tm_year=2018, tm_mon=1,
tm_mday=26, tm_hour=4, tm_min=11, tm_sec=16,
tm_wday=4, tm_yday=26, tm_isdst=0)
時間の書式設定
時間を合理的な方法でフォーマットする:文字列フォーマットのように、ディスプレイテンプレートディスプレイテンプレートが特定のフォーマット制御子からstrftime()を構成する方法が必要です.
時間の書式設定
strftime(tpl,ts)tplは、出力効果tsがコンピュータ内部の時間型変数であることを定義するフォーマットテンプレート文字列である
>>>t = time.gmtime()
>>>>time.strftime("%Y-%m-%d %H:%M:%S",t)z,
'2018-01-26 12:55:20'
書式設定コントロール
%Y年0000~9999、例えば:1900%m月01~12、例えば:10%B月名January~December、例えば:April%b月名略称Jan~Dec、例えば:Apr%d日付01~31、例えば:25%A週Monday~Sunday、例えば:Wednesday%a週略称Mon~Sun、例えば:Wed%H時間(24 h制)00~23、例えば:12%h時間(12 h制)01~12、例えば:7%p上/午後AM、PM、例えば:PM%M分00~59、例えば:26%S秒00~59、例えば:26
プログラムタイミングアプリケーション
>>>start = time.perf_counter() 318.66599499718114
>>>>end = time.perf_counter() 341.3905185375658
>>>>end - start 22.724523540384666
>>>def wait(): time.sleep(3.3)
>>>wait() # 3.3
datetimeライブラリ
datetimeモジュールはdateとtimeモジュールの集合に用いられ、datetimeには2つの定数があり、MAXYEARとMINYEAR、それぞれ9999と1である.Datetimeモジュールは5つのクラスを定義し、それぞれ
dateクラスには3つのパラメータがあり、datetime.date(year,month,day)、year-month-dayメソッドを返します.
datetimeクラスには多くのパラメータがあり、datetime(year,month,day[,hour[,minute[,second[,microsecond[,tzinfo]]]]])、戻り年月日、時間分秒
datetime.datetime.now().strftime('%b-%d-%Y %H:%M:%S')
'Apr-16-2017 21:01:35'
datetime.datetime.strptime('Apr-16-2017 21:01:35', '%b-%d-%Y %H:%M:%S')
2017-04-16 21:01:35
datetime.time
timeクラスには5つのパラメータがあり、datetime.time(hour,minute,second,microsecond,tzoninfo)は、08:29:30を返します.datetime.time.replace() 2.datetime.time.strftime(format):format形式で時間3を返す.datetime.time.tzname():タイムゾーン名を返します.datetime.time.utcoffset():タイムゾーンを返す時間オフセット量
datetime.timedelta
datetime.datetime.timedeltaは、2つの日付の差を計算するために使用します.たとえば、次のようにします.
>>> a=datetime.datetime.now()
>>> b=datetime.datetime.now()
>>> a
datetime.datetime(2017, 4, 16, 21, 21, 20, 871000)
>>> b
datetime.datetime(2017, 4, 16, 21, 21, 29, 603000)
>>> b-a
datetime.timedelta(0, 8, 732000)
>>> (b-a).seconds
8
#
time1 = datetime.datetime(2016, 10, 20)
time2 = datetime.datetime(2015, 11, 2)
""" """
print(time1-time2).days
""" """
print (time1-time2).total_seconds()
datetime.tzinfo
from datetime import datetime, tzinfo,timedelta
"""
tzinfo
tzinfo ,
"""
class UTC(tzinfo):
"""UTC"""
def __init__(self,offset = 0):
self._offset = offset
def utcoffset(self, dt):
return timedelta(hours=self._offset)
def tzname(self, dt):
return "UTC +%s" % self._offset
def dst(self, dt):
return timedelta(hours=self._offset)
#
beijing = datetime(2011,11,11,0,0,0,tzinfo = UTC(8))
#
bangkok = datetime(2011,11,11,0,0,0,tzinfo = UTC(7))
#
beijing.astimezone(UTC(7))
#
timespan = beijing - bangkok