Python-日付と時刻
前のページ次のページ
Python プログラムは、いくつかの方法で日付と時刻を処理できます。日付形式間の変換は、コンピューターにとって一般的な作業です。 Python の時刻モジュールとカレンダー モジュールは、日付と時刻の追跡に役立ちます。
ダニとは?
時間間隔は、秒単位の浮動小数点数です。特定の瞬間は、1970 年 1 月 1 日 00:00:00 (エポック) からの秒数で表されます。
人気の時間があります モジュールは Python で利用可能で、時間を操作したり、表現を変換したりするための関数を提供します。関数 time.time() 1970 年 1 月 1 日 (エポック) 00:00: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 つの数字のタプルとして扱います −
インデックス | フィールド | 値 |
---|---|---|
0 | 4 桁の年 | 2008 |
1 | 月 | 1 ~ 12 |
2 | 日 | 1 から 31 |
3 | 時間 | 0 ~ 23 |
4 | 分 | 0 ~ 59 |
5 | 2 番目 | 0 ~ 61 (60 または 61 はうるう秒) |
6 | 曜日 | 0 から 6 (0 は月曜日) |
7 | 年間通算日 | 1 から 366 (ユリウス日) |
8 | サマータイム | -1、0、1、-1 はライブラリが DST を決定することを意味します |
上記のタプルは 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 はライブラリが DST を決定することを意味します |
現在時刻の取得
エポックからの秒数から時刻を変換するには 浮動小数点値を時間タプルに変換するには、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 か月分のカレンダーを取得する
calendar モジュールは、年間および月間カレンダーを操作するための幅広いメソッドを提供します。ここでは、特定の月 (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
時間 モジュール
人気の時間があります モジュールは Python で利用可能で、時間を操作したり、表現を変換したりするための関数を提供します。利用可能なすべてのメソッドのリストは次のとおりです −
Sr.No. | 説明付き関数 |
---|---|
1 | time.altzone ローカル DST タイムゾーンのオフセット (定義されている場合、UTC から西への秒単位)。現地の DST タイムゾーンが UTC の東 (英国を含む西ヨーロッパなど) の場合、これは負になります。 daylight がゼロ以外の場合にのみ使用してください。 |
2 | time.asctime([タプルタイム]) 時間タプルを受け入れ、「Tue Dec 11 18:07:14 2008」などの読み取り可能な 24 文字の文字列を返します。 |
3 | time.clock( ) 現在の CPU 時間を浮動小数点数の秒数で返します。さまざまなアプローチの計算コストを測定するには、time.time() の値よりも time.clock の値の方が便利です。 |
4 | time.ctime([秒]) asctime(localtime(secs)) と同様で、引数なしは asctime( ) と同様です |
5 | time.gmtime([秒]) エポックからの秒数で表されるインスタントを受け入れ、UTC 時間で時間タプル t を返します。注:t.tm_isdst は常に 0 です |
6 | time.localtime([秒]) エポックからの秒数で表されるインスタントを受け入れ、現地時間で時間タプル t を返します (ローカル ルールによって DST がインスタント秒に適用されるかどうかに応じて、t.tm_isdst は 0 または 1 です)。 |
7 | time.mktime(タプルタイム) 現地時間のタイムタプルとして表現されたインスタントを受け入れ、エポックからの秒数で表現されたインスタントで浮動小数点値を返します。 |
8 | time.sleep(秒) 呼び出しスレッドを secs 秒間中断します。 |
9 | time.strftime(fmt[,tupletime]) 現地時間の時間タプルとして表現されたインスタントを受け入れ、文字列 fmt で指定されたインスタントを表す文字列を返します。 |
10 | time.strptime(str,fmt='%a %b %d %H:%M:%S %Y') フォーマット文字列 fmt に従って str を解析し、時刻タプル形式でインスタントを返します。 |
11 | time.time( ) エポックからの浮動小数点秒数である現在の時刻を返します。 |
12 | time.tzset() ライブラリ ルーチンで使用される時間変換規則をリセットします。環境変数 TZ は、これがどのように行われるかを指定します。 |
簡単に関数を見てみましょう −
time モジュールで利用できる次の 2 つの重要な属性があります −
Sr.No. | 説明付きの属性 |
---|---|
1 | time.timezone 属性 time.timezone は、UTC からのローカル タイム ゾーン (DST を除く) の秒単位のオフセットです (アメリカ大陸では>0; ヨーロッパ、アジア、アフリカの大部分では <=0)。 |
2 | time.tzname 属性 time.tzname は、ロケール依存の文字列のペアであり、それぞれ DST を使用しない場合と使用する場合のローカル タイム ゾーンの名前です。 |
カレンダー モジュール
calendar モジュールは、特定の月または年のテキスト カレンダーを印刷する関数など、カレンダー関連の関数を提供します。
デフォルトでは、カレンダーは月曜日を週の最初の日とし、日曜日を最後の日とします。これを変更するには、calendar.setfirstweekday() 関数を呼び出します。
カレンダーで利用できる機能のリストは次のとおりです。 モジュール−
Sr.No. | 説明付き関数 |
---|---|
1 | calendar.calendar(年,w=2,l=1,c=6) c スペースで区切られた 3 つの列にフォーマットされた年 year のカレンダーを含む複数行の文字列を返します。 w は各日付の文字数です。各行の長さは 21*w+18+2*c です。 l は各週の行数です。 |
2 | calendar.firstweekday( ) 毎週始まる曜日の現在の設定を返します。デフォルトでは、カレンダーが最初にインポートされるとき、これは月曜日を意味する 0 です。 |
3 | calendar.isleap(年) 年がうるう年である場合は True を返します。それ以外の場合は、False。 |
4 | calendar.leapdays(y1,y2) 範囲 (y1,y2) 内の年のうるう日の合計数を返します。 |
5 | calendar.month(年,月,w=2,l=1) 1 週間に 1 行と 2 行のヘッダー行を含む、月、月、年、年のカレンダーを含む複数行の文字列を返します。 w は各日付の文字数です。各行の長さは 7*w+6 です。 l は各週の行数です。 |
6 | calendar.monthcalendar(年,月) int のリストのリストを返します。各サブリストは週を表します。年月月以外の日は 0 に設定されます。月内の日は、1 日以降に設定されます。 |
7 | calendar.monthrange(年,月) 2 つの整数を返します。最初のものは、年の月の月の初日の平日のコードです。 2 つ目は、1 か月の日数です。平日コードは 0 (月曜日) から 6 (日曜日) です。月の数字は 1 から 12 です。 |
8 | calendar.prcal(年,w=2,l=1,c=6) print calendar.calendar(year,w,l,c). と同様です。 |
9 | calendar.prmonth(年,月,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(年、月、日) 指定された日付の曜日コードを返します。平日コードは 0 (月曜日) から 6 (日曜日) です。月の数字は 1 (1 月) から 12 (12 月) です。 |
その他のモジュールと機能
興味があれば、Python で日付と時刻を操作するための他の重要なモジュールと関数のリストがここにあります −
-
日時 モジュール
-
ピッツ モジュール
-
dateutil モジュール
Python