Python-date-time

提供:Dev Guides
移動先:案内検索

Python-日付と時刻

Pythonプログラムは、いくつかの方法で日付と時刻を処理できます。 日付形式間の変換は、コンピューターの一般的な雑用です。 Pythonの時間モジュールとカレンダーモジュールは、日付と時間の追跡に役立ちます。

ティックとは何ですか?

時間間隔は、秒単位の浮動小数点数です。 特定の瞬間は、1970年1月1日(エポック)の午前12時からの秒数で表されます。

Pythonで利用できる人気のある time モジュールがあり、これは時間を操作したり、表現間で変換するための機能を提供します。 関数_time.time()_は、1970年1月1日(エポック)の午前12:00以降の現在のシステム時刻をティック単位で返します。

#!/usr/bin/python
import time;  # This is required to include time module.

ticks = time.time()
print "Number of ticks since 12:00am, January 1, 1970:", ticks

これは次のような結果を生成します-

Number of ticks since 12:00am, January 1, 1970: 7186862.73399

日付の算術はティックで簡単に行えます。 ただし、エポックより前の日付をこの形式で表すことはできません。 遠い将来の日付もこの方法で表すことはできません-カットオフポイントは、UNIXとWindowsの2038年のいつかです。

TimeTupleとは何ですか?

Pythonの時間関数の多くは、以下に示すように、9つの数字のタプルとして時間を処理します-

Index Field Values
0 4-digit year 2008
1 Month 1 to 12
2 Day 1 to 31
3 Hour 0 to 23
4 Minute 0 to 59
5 Second 0 to 61 (60 or 61 are leap-seconds)
6 Day of Week 0 to 6 (0 is Monday)
7 Day of year 1 to 366 (Julian day)
8 Daylight savings -1, 0, 1, -1 means library determines DST

上記のタプルは struct_time 構造体と同等です。 この構造には次の属性があります-

Index Attributes Values
0 tm_year 2008
1 tm_mon 1 to 12
2 tm_mday 1 to 31
3 tm_hour 0 to 23
4 tm_min 0 to 59
5 tm_sec 0 to 61 (60 or 61 are leap-seconds)
6 tm_wday 0 to 6 (0 is Monday)
7 tm_yday 1 to 366 (Julian day)
8 tm_isdst -1, 0, 1, -1 means library determines DST

現在の時刻を取得する

epoch_浮動小数点値からの_secondsからタイムタプルへの時刻を変換するには、浮動小数点値を、9つの項目すべてが有効なタイムタプルを返す関数(localtimeなど)に渡します。

#!/usr/bin/python
import time;

localtime = time.localtime(time.time())
print "Local current time :", localtime

これは、他の提示可能な形式でフォーマットすることができる次の結果を生成します-

Local current time : time.struct_time(tm_year=2013, tm_mon=7,
tm_mday=17, tm_hour=21, tm_min=26, tm_sec=3, tm_wday=2, tm_yday=198, tm_isdst=0)

フォーマットされた時間を取得する

あなたはあなたの要件に応じていつでもフォーマットすることができますが、読み取り可能な形式で時間を取得する簡単な方法はasctime()です-

#!/usr/bin/python
import time;

localtime = time.asctime( time.localtime(time.time()) )
print "Local current time :", localtime

これは、次の結果を生成します-

Local current time : Tue Jan 13 10:17:09 2009

1か月のカレンダーを取得する

カレンダーモジュールは、毎年および毎月のカレンダーで遊ぶための幅広い方法を提供します。 ここでは、特定の月(2008年1月)のカレンダーを印刷します-

#!/usr/bin/python
import calendar

cal = calendar.month(2008, 1)
print "Here is the calendar:"
print cal

これは、次の結果を生成します-

Here is the calendar:
   January 2008
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_モジュール

Pythonで利用できる人気のある time モジュールがあります。これは、時間を操作したり、表現を変換したりするための関数を提供します。 ここに利用可能なすべてのメソッドのリストがあります-

Sr.No. Function with Description
1

time.altzone

UTCの西の秒単位のローカルDSTタイムゾーンのオフセット(定義されている場合)。 これは、ローカルDSTタイムゾーンがUTCの東にある場合は負です(英国を含む西ヨーロッパの場合)。 これは、夏時間がゼロでない場合にのみ使用してください。

2

time.asctime([tupletime)]

タイムタプルを受け入れ、「Tue Dec 11 18:07:14 2008」などの読み取り可能な24文字の文字列を返します。

3

time.clock( )

現在のCPU時間を浮動小数点数として返します。 さまざまなアプローチの計算コストを測定するには、time.clockの値がtime.time()の値よりも有用です。

4

time.ctime([secs)]

asctime(localtime(secs))のように、引数なしはasctime()のようになります

5

time.gmtime([secs)]

エポックからの秒数で表されるインスタントを受け入れ、UTC時間を含むタイムタプルtを返します。 注:t.tm_isdstは常に0です

6

time.localtime([secs)]

エポックからの秒数で表されるインスタントを受け入れ、ローカル時間のタイムタプルtを返します(ローカルルールによってDSTがインスタントsecsに適用されるかどうかに応じて、t.tm_isdstは0または1です)。

7

time.mktime(tupletime)

ローカル時間のタイムタプルとして表されるインスタントを受け入れ、エポックからの秒数で表されるインスタントを含む浮動小数点値を返します。

8

time.sleep(secs)

呼び出しスレッドをsecs秒間中断します。

9

time.strftime(fmt[,tupletime)]

現地時間のタイムタプルとして表されるインスタントを受け入れ、文字列fmtで指定されたインスタントを表す文字列を返します。

10

time.strptime(str

フォーマット文字列fmtに従ってstrを解析し、インスタントをタイムタプル形式で返します。

11

time.time( )

現在の時刻、エポックからの秒数の浮動小数点数を返します。

12

time.tzset()

ライブラリルーチンで使用される時間変換ルールをリセットします。 環境変数TZは、これを行う方法を指定します。

関数を簡単に見てみましょう-

タイムモジュールで使用できる次の2つの重要な属性があります-

Sr.No. Attribute with Description
1

time.timezone

属性time.timezoneは、UTCからのローカルタイムゾーン(DSTなし)の秒単位のオフセットです(アメリカ大陸では0、ヨーロッパ、アジア、アフリカのほとんどでは⇐ 0)。

2

time.tzname

属性time.tznameは、ロケールに依存する文字列のペアです。これらは、それぞれDSTを使用する場合と使用しない場合のローカルタイムゾーンの名前です。

_calendar_モジュール

カレンダーモジュールは、特定の月または年のテキストカレンダーを印刷する機能を含む、カレンダー関連の機能を提供します。

デフォルトでは、カレンダーは月曜日を週の最初の日とし、日曜日を最後の日とします。 これを変更するには、calendar.setfirstweekday()関数を呼び出します。

ここに_calendar_モジュールで利用可能な機能のリストがあります-

Sr.No. Function with Description
1

calendar.calendar(year,w=2,l=1,c=6)

cスペースで区切られた3つの列にフォーマットされた年yearのカレンダーを含む複数行の文字列を返します。 wは各日付の文字の幅です。各行の長さは21 w + 18 + 2 cです。 lは、各週の行数です。

2

calendar.firstweekday( )

毎週始まる平日の現在の設定を返します。 デフォルトでは、カレンダーが最初にインポートされるとき、これは月曜日を意味する0です。

3

calendar.isleap(year)

年がうるう年の場合Trueを返します。それ以外の場合、False。

4

calendar.leapdays(y1,y2)

range(y1、y2)内の年のうるう日の合計数を返します。

5

calendar.month(year,month,w=2,l=1)

年、年、月、月、1週に1行、2行のヘッダー行のカレンダーを含む複数行の文字列を返します。 wは各日付の文字の幅です。各行の長さは7 *w + 6です。 lは、各週の行数です。

6
  • calendar.monthcalendar(year,month)*

intのリストのリストを返します。 各サブリストは週を示します。 年の月の月以外の日は0に設定されます。月内の日は、その月の1日以上に設定されます。

7

calendar.monthrange(year,month)

2つの整数を返します。 最初のものは、年yearの月monthの最初の日の平日のコードです。 2番目は月の日数です。 曜日コードは0(月曜日)〜6(日曜日)です。月の番号は1〜12です。

8

calendar.prcal(year,w=2,l=1,c=6)

印刷calendar.calendar(year、w、l、c)のように。

9

calendar.prmonth(year,month,w=2,l=1)

print calendar.month(year、month、w、l)のように。

10

calendar.setfirstweekday(weekday)

週の最初の日を平日コードに設定します。 曜日コードは0(月曜日)から6(日曜日)です。

11

calendar.timegm(tupletime)

time.gmtimeの逆:タイムタプル形式の時刻を受け取り、エポック以降の浮動小数点数と同じ瞬間を返します。

12

calendar.weekday(year,month,day)

指定された日付の曜日コードを返します。 曜日コードは0(月曜日)〜6(日曜日)です。月番号は1(1月)から12(12月)です。

その他のモジュールと機能

興味がある場合は、ここで、Pythonで日付と時刻を操作する他の重要なモジュールと関数のリストを見つけます-