python日付と時刻
6497 ワード
Python日付と時刻
Pythonプログラムは多くの方法で日付と時間を処理することができ、日付フォーマットを変換するのは一般的な機能です.
Pythonは、日付と時間をフォーマットするためのtimeモジュールとcalendarモジュールを提供しています.
時間間隔は秒単位の浮動小数点数です.
各タイムスタンプは1970年1月1日の真夜中(暦)からどのくらいの時間が経過したかで表される.
Pythonのtimeモジュールの下には、一般的な日付フォーマットを変換できる関数がたくさんあります.関数timeのように.time()は、次の例で現在のタイムスタンプを取得するために使用されます.
上記の例は、結果を出力します.
タイムスタンプ単位は日付演算に最適です.しかし1970年以前の日付はそれを表すことができなかった.あまりにも遠い日付ではだめで、UNIXとWindowsは2038年までしかサポートされていません.
タイムグループとは?
多くのPython関数が1つの要素で組み立てられた9組のデジタル処理時間:
シーケンス番号
フィールド
値
0
4桁の年
2008
1
月
1~12
2
日
1~31
3
時間
0~23
4
分
0~59
5
秒
0~61(60または61は閏秒)
6
週の何日目
0~6(0は月曜日)
7
一年の何日目
1~366(儒略暦)
8
サマータイム
-1,0,1,-1はサマータイムかどうかを決めるフラッグです
以上、struct_timeメタグループ.この構造には、次の属性があります.
シーケンス番号
ツールバーの
値
0
tm_year
2008
1
tm_mon
1~12
2
tm_mday
1~31
3
tm_hour
0~23
4
tm_min
0~59
5
tm_sec
0~61(60または61は閏秒)
6
tm_wday
0~6(0は月曜日)
7
tm_yday
1~366(儒略暦)
8
tm_isdst
-1,0,1,-1はサマータイムかどうかを決めるフラッグです
現在時刻の取得
浮動小数点数を返す時間中退方式から時間メタグループに変換し、localtimeのような関数に浮動小数点数を渡す限り.
上記の例は、結果を出力します.
フォーマットの取得時間
必要に応じて様々なフォーマットを選択できますが、最も簡単に読み取り可能な時間モードを取得する関数はasctime()です.
上記の例は、結果を出力します.
書式設定日
timeモジュールのstrftimeメソッドを使用して日付をフォーマットできます.
上記の例は、結果を出力します.
pythonの日付書式設定記号:
%y 2桁の年表示(00-99)%Y 4桁の年表示(000-9999)%m月(01-12)%d月内の1日(0-31)%H 24時間制時間数(0-23)%I 12時間制時間数(01-12)%M分(00=59)%S秒(00-59)%aローカル簡略化曜日名%Aローカルフルタイム名前%bローカル簡略化された月名%Bローカル完全月名%cローカル対応の日付表示と時間表示%j年間の1日(001-366)%pローカルA.M.またはP.M.の等価子%U 1年間の曜日(00-53)日曜日は曜日の開始%w曜日(0-6)、日曜日は曜日の開始%W年間の曜日(00-53)月曜日は週の開始%xローカル対応日はを表します.
%Xローカル対応時間表示%Z現在のタイムゾーンの名前%%番号自体月次カレンダーの取得
Calendarモジュールには、ある月のカレンダーを印刷するなど、カレンダーとカレンダーを処理する方法が広くあります.
上記の例は、結果を出力します.
Timeモジュール
Timeモジュールには、相を処理する時間もあれば、時間フォーマットを変換する時間もある関数が組み込まれています.
シーケンス番号
関数と説明
1
time.Altzoneは、グリニッジ西部のサマータイム地域のオフセット秒数を返します.この地域がグリニッジ東部で負の値(例えば西欧、英国を含む)を返す.夏時間に地域を有効にする必要があります.
2
time.asctime([tupletime])は、時間タプルを受け入れ、「Tue Dec 11 18:07:14 2008」(2008年12月11日火曜日18時07分14秒)の24文字の読み取り可能な文字列を返します.
3
time.clock()は,浮動小数点数で計算した秒数で現在のCPU時間を返す.異なるプログラムの時間を測定するために使用する、time.time()の方が役に立ちます.
4
time.ctime([secs])作用はasctime(localtime(secs))に相当し、パラメータが与えられていないのはasctime()に相当する.
5
time.gmtime([secs])は、時間中退(1970紀元後に経過した浮動小数点秒数)を受信し、グリニッジ天文時間における時間要素群tに戻る.注意:t.tm_isdstは常に0
6
time.localtime([secs])は、受信時間を中退し(1970紀元後に経過した浮動小数点秒数)、現地時間における時間要素群tに戻る(t.tm_isdstは、現地がサマータイムであったか否かに応じて0または1をとることができる).
7
time.mktime(tupletime)は、時間要素グループを受け入れ、時間中退(1970紀元後に経過した浮動小数点秒数)を返す.
8
time.sleep(secs)は呼び出しスレッドの実行を遅らせ、secsは秒数を指す.
9
time.strftime(fmt[,tupletime])は、時間メタグループで受信され、読み取り可能な文字列で表されるローカル時間を返し、フォーマットはfmtによって決定される.
10
time.strptime(str,fmt='%a%b%d%H:%M:%S%Y')は、fmtのフォーマットに従って時間文字列を時間メタグループに解析します.
11
time.time()は、現在の時刻のタイムスタンプ(1970紀元後に経過した浮動小数点秒数)を返します.
12
time.tzset()は、環境変数TZに従って時間相関設定を再初期化する.
Timeモジュールには、次の2つの非常に重要な属性が含まれています.
シーケンス番号
属性と説明
1
time.timezone属性time.timezoneは、現地タイムゾーン(サマータイムを開始していない)のグリニッジからのオフセット秒数(>0、アメリカ;<=0ヨーロッパ、アジア、アフリカの大部分).
2
time.tzname属性time.tznameには、夏時間帯のローカルタイムゾーン名と、持たない文字列のペアが含まれています.
カレンダモジュール
このモジュールの関数は、カレンダーに関連しています.たとえば、ある月の文字カレンダーを印刷します.
月曜日はデフォルトの週1日目で、日曜日はデフォルトの最終日です.設定を変更するにはcalendarを呼び出す必要があります.setfirstweekday()関数.モジュールには、次の関数が組み込まれています.
シーケンス番号
関数と説明
1
calendar.calendar(year,w=2,l=1,c=6)は、複数行の文字列形式のyearカレンダーを返し、3ヶ月に1行、間隔距離cを返します.毎日の幅間隔はw文字です.各行の長さは21*W+18+2*Cである.lは毎週の行数です.
2
calendar.firstweekday()は、現在の週の開始日の設定を返します.デフォルトでは、caendarモジュールを最初にロードしたときに0(月曜日)を返します.
3
calendar.isleap(year)は、閏年にTrueを返します.そうでなければfalseです.
4
calendar.leapdays(y 1,y 2)は、Y 1,Y 2の2年間の閏年総数を返します.
5
calendar.month(year,month,w=2,l=1)は、複数行の文字列形式のyear年month月カレンダー、2行のタイトル、1週間の行を返します.毎日の幅間隔はw文字です.各行の長さは7*w+6です.lは毎週の行数です.
6
calendar.monthcalendar(year,month)は、整数の単層ネストリストを返します.各サブリスト・マウントは、1週間を表す整数です.Year年month月以外の日付は0に設定します.範囲内の日は、その月の何日目から表示され、1から始まります.
7
calendar.monthrange(year,month)は2つの整数を返します.1つ目は月の曜日の日付コードで、2つ目は月の日付コードです.日は0(月)から6(日)までです.月は1から12までです.
8
calendar.prcal(year,w=2,l=1,c=6)はprint calendarに相当する.calendar(year,w,l,c).
9
calendar.prmonth(year,month,w=2,l=1)はprint calendarに相当する.calendar(year,w,l,c).
10
calendar.setfirstweekday(weekday)は、毎週の開始日コードを設定します.0(月)から6(日)までです.
11
calendar.timegm(tupletime)とtime.gmtimeは逆に、時間メタグループ形式を受け入れ、その時刻を返す時間を中退する(1970紀元後に経過した浮動小数点秒数).
12
calendar.weekday(year,month,day)は、所定の日付の日付コードを返します.0(月)から6(日)までです.月は1(1月)から12(12月)です.
その他の関連モジュールと関数
Pythonでは、日付と時間を処理する他のモジュールがあります.
datetimeモジュールpytzモジュールDateutilモジュール
Pythonプログラムは多くの方法で日付と時間を処理することができ、日付フォーマットを変換するのは一般的な機能です.
Pythonは、日付と時間をフォーマットするためのtimeモジュールとcalendarモジュールを提供しています.
時間間隔は秒単位の浮動小数点数です.
各タイムスタンプは1970年1月1日の真夜中(暦)からどのくらいの時間が経過したかで表される.
Pythonのtimeモジュールの下には、一般的な日付フォーマットを変換できる関数がたくさんあります.関数timeのように.time()は、次の例で現在のタイムスタンプを取得するために使用されます.
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time; # time
ticks = time.time()
print " :", ticks
上記の例は、結果を出力します.
: 1459994552.51
タイムスタンプ単位は日付演算に最適です.しかし1970年以前の日付はそれを表すことができなかった.あまりにも遠い日付ではだめで、UNIXとWindowsは2038年までしかサポートされていません.
タイムグループとは?
多くのPython関数が1つの要素で組み立てられた9組のデジタル処理時間:
シーケンス番号
フィールド
値
0
4桁の年
2008
1
月
1~12
2
日
1~31
3
時間
0~23
4
分
0~59
5
秒
0~61(60または61は閏秒)
6
週の何日目
0~6(0は月曜日)
7
一年の何日目
1~366(儒略暦)
8
サマータイム
-1,0,1,-1はサマータイムかどうかを決めるフラッグです
以上、struct_timeメタグループ.この構造には、次の属性があります.
シーケンス番号
ツールバーの
値
0
tm_year
2008
1
tm_mon
1~12
2
tm_mday
1~31
3
tm_hour
0~23
4
tm_min
0~59
5
tm_sec
0~61(60または61は閏秒)
6
tm_wday
0~6(0は月曜日)
7
tm_yday
1~366(儒略暦)
8
tm_isdst
-1,0,1,-1はサマータイムかどうかを決めるフラッグです
現在時刻の取得
浮動小数点数を返す時間中退方式から時間メタグループに変換し、localtimeのような関数に浮動小数点数を渡す限り.
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time
localtime = time.localtime(time.time())
print " :", localtime
上記の例は、結果を出力します.
: time.struct_time(tm_year=2016, tm_mon=4, tm_mday=7, tm_hour=10, tm_min=3, tm_sec=27, tm_wday=3, tm_yday=98, tm_isdst=0)
フォーマットの取得時間
必要に応じて様々なフォーマットを選択できますが、最も簡単に読み取り可能な時間モードを取得する関数はasctime()です.
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time
localtime = time.asctime( time.localtime(time.time()) )
print " :", localtime
上記の例は、結果を出力します.
: Thu Apr 7 10:05:21 2016
書式設定日
timeモジュールのstrftimeメソッドを使用して日付をフォーマットできます.
time.strftime(format[, t])
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time
# 2016-03-20 11:45:39
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
# Sat Mar 28 22:24:24 2016
print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())
#
a = "Sat Mar 28 22:24:24 2016"
print time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))
上記の例は、結果を出力します.
2016-04-07 10:25:09
Thu Apr 07 10:25:09 2016
1459175064.0
pythonの日付書式設定記号:
%y 2桁の年表示(00-99)%Y 4桁の年表示(000-9999)%m月(01-12)%d月内の1日(0-31)%H 24時間制時間数(0-23)%I 12時間制時間数(01-12)%M分(00=59)%S秒(00-59)%aローカル簡略化曜日名%Aローカルフルタイム名前%bローカル簡略化された月名%Bローカル完全月名%cローカル対応の日付表示と時間表示%j年間の1日(001-366)%pローカルA.M.またはP.M.の等価子%U 1年間の曜日(00-53)日曜日は曜日の開始%w曜日(0-6)、日曜日は曜日の開始%W年間の曜日(00-53)月曜日は週の開始%xローカル対応日はを表します.
%Xローカル対応時間表示%Z現在のタイムゾーンの名前%%番号自体月次カレンダーの取得
Calendarモジュールには、ある月のカレンダーを印刷するなど、カレンダーとカレンダーを処理する方法が広くあります.
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import calendar
cal = calendar.month(2016, 1)
print " 2016 1 :"
print cal;
上記の例は、結果を出力します.
2016 1 :
January 2016
Mo Tu We Th Fr Sa Su
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Timeモジュール
Timeモジュールには、相を処理する時間もあれば、時間フォーマットを変換する時間もある関数が組み込まれています.
シーケンス番号
関数と説明
1
time.Altzoneは、グリニッジ西部のサマータイム地域のオフセット秒数を返します.この地域がグリニッジ東部で負の値(例えば西欧、英国を含む)を返す.夏時間に地域を有効にする必要があります.
2
time.asctime([tupletime])は、時間タプルを受け入れ、「Tue Dec 11 18:07:14 2008」(2008年12月11日火曜日18時07分14秒)の24文字の読み取り可能な文字列を返します.
3
time.clock()は,浮動小数点数で計算した秒数で現在のCPU時間を返す.異なるプログラムの時間を測定するために使用する、time.time()の方が役に立ちます.
4
time.ctime([secs])作用はasctime(localtime(secs))に相当し、パラメータが与えられていないのはasctime()に相当する.
5
time.gmtime([secs])は、時間中退(1970紀元後に経過した浮動小数点秒数)を受信し、グリニッジ天文時間における時間要素群tに戻る.注意:t.tm_isdstは常に0
6
time.localtime([secs])は、受信時間を中退し(1970紀元後に経過した浮動小数点秒数)、現地時間における時間要素群tに戻る(t.tm_isdstは、現地がサマータイムであったか否かに応じて0または1をとることができる).
7
time.mktime(tupletime)は、時間要素グループを受け入れ、時間中退(1970紀元後に経過した浮動小数点秒数)を返す.
8
time.sleep(secs)は呼び出しスレッドの実行を遅らせ、secsは秒数を指す.
9
time.strftime(fmt[,tupletime])は、時間メタグループで受信され、読み取り可能な文字列で表されるローカル時間を返し、フォーマットはfmtによって決定される.
10
time.strptime(str,fmt='%a%b%d%H:%M:%S%Y')は、fmtのフォーマットに従って時間文字列を時間メタグループに解析します.
11
time.time()は、現在の時刻のタイムスタンプ(1970紀元後に経過した浮動小数点秒数)を返します.
12
time.tzset()は、環境変数TZに従って時間相関設定を再初期化する.
Timeモジュールには、次の2つの非常に重要な属性が含まれています.
シーケンス番号
属性と説明
1
time.timezone属性time.timezoneは、現地タイムゾーン(サマータイムを開始していない)のグリニッジからのオフセット秒数(>0、アメリカ;<=0ヨーロッパ、アジア、アフリカの大部分).
2
time.tzname属性time.tznameには、夏時間帯のローカルタイムゾーン名と、持たない文字列のペアが含まれています.
カレンダモジュール
このモジュールの関数は、カレンダーに関連しています.たとえば、ある月の文字カレンダーを印刷します.
月曜日はデフォルトの週1日目で、日曜日はデフォルトの最終日です.設定を変更するにはcalendarを呼び出す必要があります.setfirstweekday()関数.モジュールには、次の関数が組み込まれています.
シーケンス番号
関数と説明
1
calendar.calendar(year,w=2,l=1,c=6)は、複数行の文字列形式のyearカレンダーを返し、3ヶ月に1行、間隔距離cを返します.毎日の幅間隔はw文字です.各行の長さは21*W+18+2*Cである.lは毎週の行数です.
2
calendar.firstweekday()は、現在の週の開始日の設定を返します.デフォルトでは、caendarモジュールを最初にロードしたときに0(月曜日)を返します.
3
calendar.isleap(year)は、閏年にTrueを返します.そうでなければfalseです.
4
calendar.leapdays(y 1,y 2)は、Y 1,Y 2の2年間の閏年総数を返します.
5
calendar.month(year,month,w=2,l=1)は、複数行の文字列形式のyear年month月カレンダー、2行のタイトル、1週間の行を返します.毎日の幅間隔はw文字です.各行の長さは7*w+6です.lは毎週の行数です.
6
calendar.monthcalendar(year,month)は、整数の単層ネストリストを返します.各サブリスト・マウントは、1週間を表す整数です.Year年month月以外の日付は0に設定します.範囲内の日は、その月の何日目から表示され、1から始まります.
7
calendar.monthrange(year,month)は2つの整数を返します.1つ目は月の曜日の日付コードで、2つ目は月の日付コードです.日は0(月)から6(日)までです.月は1から12までです.
8
calendar.prcal(year,w=2,l=1,c=6)はprint calendarに相当する.calendar(year,w,l,c).
9
calendar.prmonth(year,month,w=2,l=1)はprint calendarに相当する.calendar(year,w,l,c).
10
calendar.setfirstweekday(weekday)は、毎週の開始日コードを設定します.0(月)から6(日)までです.
11
calendar.timegm(tupletime)とtime.gmtimeは逆に、時間メタグループ形式を受け入れ、その時刻を返す時間を中退する(1970紀元後に経過した浮動小数点秒数).
12
calendar.weekday(year,month,day)は、所定の日付の日付コードを返します.0(月)から6(日)までです.月は1(1月)から12(12月)です.
その他の関連モジュールと関数
Pythonでは、日付と時間を処理する他のモジュールがあります.
datetimeモジュールpytzモジュールDateutilモジュール