Pythonの基本入門チュート...login
Pythonの基本入門チュートリアル
著者:php.cn  更新時間:2022-04-18 16:14:50

Python の日付と時刻


Python プログラムはさまざまな方法で日付と時刻を処理でき、日付形式の変換は一般的な機能です。

Python は、日付と時刻の書式設定に使用できる時刻とカレンダーのモジュールを提供します。

時間間隔は秒単位の浮動小数点数です。

各タイムスタンプは、1970 年 1 月 1 日の午前 0 時 (エポック) からの経過時間を表します。

Python の time モジュールには、一般的な日付形式を変換できる関数が多数あります。たとえば、次の例に示すように、関数 time.time() は現在のタイムスタンプを取得するために使用されます:


#!/usr/bin/python
# -*- コーディング: UTF-8 - *-

import time; # time モジュールの紹介

ticks = time.time()
print "The current timestamp is:", Nicks

上記の出力結果の例:

現在のタイムスタンプは: 1459994552.51

タイムスタンプ単位は日付操作を行うのに最適です。ただし、1970 年より前の日付はこの方法では表現できません。遠すぎる日付も機能しません。UNIX と Windows は 2038 年までのみサポートされます。



時間タプルとは何ですか?

多くの Python 関数は、1 つの要素を使用して 9 セットの数値を組み立てます。処理時間は次のとおりです:

シリアル番号フィールド値04桁の年20081 月1〜122日1〜313時間0〜234分0から59まで 5 秒0〜61(60または61はうるう秒)6曜日0〜6(0は月曜日)7曜日曜日1から366(ユリウス暦)8サマータイム-1、0、1、-1はサマータイムかどうかを決めるフラグです
上記はstruct_time タプル。この構造には次の属性があります:

シリアル番号属性tm_yeartm_mon tm_mdaytm_hourtm_mintm_sectm_wdaytm_ydaytm_isdst
0
20081
1から122
1〜313
0〜234
0〜59 5
0 ~ 61 (60 または 61)はうるう秒です)6
0〜6(0は月曜日)7
1〜366(ユリウス暦)8
- 1、0、1、-1 は夏時間かどうかを決定するフラグです

現在時刻を取得します

浮動小数点数を返すtimeメソッドを時間タプルに変換し、浮動小数点数をlocaltimeなどの関数に渡すだけです。

#!/usr/bin/python
# -*- コーディング: UTF-8 -*-

インポート時間

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
# -*- コーディング: UTF-8 -*-

インポート時間

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
# -*- コーディング: UTF-8 -*-

import time

# 2016 にフォーマット-03-20 11: 45:39 format
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

# Sat Mar 28 22 にフォーマットされました:24:24 2016 format
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 month (01) -12)

  • %d 月の日 (0-31)

  • %H 24 時間制 (0-23)

  • %I 12 時間制 (01 -12)

  • %M 分 (00=59)

  • %S 秒 (00-59)

  • %a ローカルの簡略化された週名

  • %A ローカルの完全な週名

  • %b ローカルの簡略化された週名月名

  • %B ローカルの完全な月名

  • %c ローカルに対応する日付表現と時刻表現

  • %j 年間の日 (001-366)

  • %p ローカルと同等A.M. または P.M.

  • %U 年間の週数 (00-53) 日曜日が週の始まりです

  • %w 曜日 (0-6)、日曜日は週

  • の始まり%W 年の週数 (00-53) 月曜日が週の始まりです

  • %x 対応する現地の日付表現

  • %X 対応する現地の日付表現時間表現

  • %Z 現在のタイムゾーンの名前

  • %% 数値自体


特定の月のカレンダーを取得します

Calendar モジュールには、年次を処理するための幅広いメソッドがあります特定の月の月間カレンダーを印刷するなどの月間カレンダー:

#!/usr/bin/python
# -*- コーディング: 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 モジュールには、時刻処理と時刻形式変換の両方のための次の組み込み関数が含まれています:

シリアル番号関数と説明
1time.altzone
グリニッジ以西の夏時間帯のオフセット (秒単位)。エリアがグリニッジより東(英国を含む西ヨーロッパなど)の場合、負の値が返されます。夏時間が有効になっている地域でのみ利用できます。
2time.asctime([tupletime])
時刻タプルを受け入れ、「火曜日 12 月 11 日 18:07:14 2008」という可読形式を返します (2008 年 12 月 11 日火曜日 18:07 分 14 秒) ) 24 文字の文字列。
3time. Clock( )
浮動小数点数として計算された現在の CPU 時間を秒単位で返します。これはさまざまなプログラムの消費時間を測定するために使用され、time.time() よりも便利です。
4time.ctime([secs])
この関数はasctime(localtime(secs))と同等であり、パラメータは与えられず、asctime()
5timeと同等です。 gmtime([secs])
タイムアウト (1970 エポックから経過した浮動小数点の秒数) を受け取り、グリニッジ天文時間で時刻タプル t を返します。注: t.tm_isdst は常に 0 です
6time.localtime([secs])
タイムアウト (1970 エポック後に経過した浮動小数点の秒数) を受け取り、時間タプル t(t in現地時間) .tm_isdst は、現地時間が夏時間かどうかに応じて 0 または 1 になります)。
7time.mktime(tupletime)
時間タプルを受け入れ、時間 (エポック 1970 から経過した浮動小数点の秒数) を返します。
8time.sleep(secs)
呼び出しスレッドの実行を遅らせます。secs は秒数を指します。
9time.strftime(fmt[,tupletime])
時刻タプルを受け取り、読み取り可能な文字列として表される現地時間を返します。形式は fmt によって決定されます。
10time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')
fmt の形式に従って時間文字列を時間タプルに解析します。
11time.time( )
現在の時刻のタイムスタンプを返します (エポック 1970 から経過した浮動小数点秒数)。
12time.tzset()
環境変数TZに従って時間関連の設定を再初期化します。 timeモジュールには、次の2つの非常に重要な属性が含まれています。 (夏時間開始時のグリニッジからの秒単位のオフセットはまだありません (アメリカ大陸では > 0、ヨーロッパ、アジア、アフリカのほとんどの地域では <= 0))。
2

time.tzname 属性 time.tzname には、状況に応じて異なる文字列のペアが含まれています。これは、夏時間ありとなしのローカルタイムゾーン名です。

カレンダーモジュール

このモジュールの機能は、特定の月のキャラクターカレンダーを印刷するなど、カレンダーに関連したものです。

月曜日はデフォルトの週の最初の日、日曜日はデフォルトの最終日です。設定を変更するには、calendar.setfirstweekday() 関数を呼び出す必要があります。このモジュールには次の組み込み関数が含まれています:

101112
シリアル番号機能と説明
1calendar.calendar(year,w=2,l=1,c=6)
1 行あたり 3 か月、間隔 c の複数行の年暦を文字列形式で返します。 毎日の幅の間隔は w 文字です。各線の長さは 21* W+18+2* C です。 l は 1 週間あたりの行数です。
2calendar.firstweekday( )
現在の週の開始日の設定を返します。デフォルトでは、caendar モジュールが最初にロードされるとき (月曜日) に 0 が返されます。
3calendar.isleap(year)
は、うるう年の場合は True を返し、それ以外の場合は false を返します。
4calendar.leapdays(y1,y2)
Y1 と Y2 の間の閏年の合計を返します。
5calendar.month(year,month,w=2,l=1)
タイトルが 2 行、週ごとに 1 行の、年と月のカレンダーを複数行の文字列形式で返します。 。毎日の幅の間隔は w 文字です。各行の長さは 7*w+6 です。 l は 1 週間あたりの行数です。
6calendar.monthcalendar(year,month)
単一レベルのネストされた整数リストを返します。各サブリストは週を表す整数を保持します。年、月、月以外の日付はすべて 0 に設定され、範囲内の日は 1 から始まる日で表されます。
7calendar.monthrange(年,月)
2 つの整数を返します。 1 つ目は月の曜日の日付コード、2 つ目は月の日コードです。日の範囲は 0 (月曜日) から 6 (日曜日) まで、月の範囲は 1 から 12 までです。
8calendar.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) と同等です。
calendar.setfirstweekday(平日) 週の開始日コードを設定します。 0(月曜日)から6(日曜日)まで。
calendar.timegm(tupletime) は time.gmtime の逆です。時間タプル形式を受け入れ、その時点の時刻 (1970 エポックから経過した浮動小数点の秒数) を返します。 。
calendar.weekday(年,月,日)指定された日付の日付コードを返します。 0(月曜日)から6(日曜日)まで。月の範囲は 1 (1 月) から 12 (12 月) までです。

その他の関連モジュールと関数

Python では、日付と時刻を処理するその他のモジュールは次のとおりです:

    datetime モジュール
  • pytz モジュール
  • dateutil モジュール