Python 日時、時間Delta、Strftime(フォーマット)と例
⚡ スマートサマリー
Python datetime モジュールは、date、time、timedelta クラスとともに、日付、時刻、および時間間隔をオブジェクトとして扱います。datetime モジュールは、strftime() を使用して出力をフォーマットし、文字列を解析し、timedelta 演算を使用して未来または過去の時刻を計算します。

In Python, 日付、時刻、日時 クラスは、日付、時刻、時間間隔を扱うための多くの機能を提供します。 Python これらはオブジェクトなので、操作する際は、文字列やタイムスタンプではなく、実際にオブジェクトを操作していることになります。日付や時刻を操作する際は、必ずdatetimeモジュールをインポートする必要があります。
のdatetimeクラス Python 5つの主要なクラスに分類されます。
- date – 日付(月、日、年)のみを操作します
- time – 曜日に依存しない時間 (時、分、秒、マイクロ秒)
- datetime – 時刻と日付の組み合わせ (月、日、年、時、秒、マイクロ秒)
- timedelta — 日付を操作するために使用する時間の長さ
- tzinfo— 腹筋tracタイムゾーンを扱うためのtクラス
Date および DateTime クラスの使用方法
ステップ 1) 日付時刻形式のコードを実行する前に Pythonをインポートすることが重要です Python 下のスクリーンショットに示すように、日付時刻モジュール。
これらのインポートステートメントは、 Python コードを一切書かずに日付と時刻を操作できるライブラリ。
実行する前に以下の点を考慮してください。 Python 日時フォーマットコード
from datetime import date
この行は、 Python インタープリタはdatetimeモジュールからdateクラスをインポートします Python私たちはこの日付機能のコードを記述しているのではなく、単にそれをインポートして利用しているだけです。
date.today() を使用して日付を出力します
date.today() 関数には、いくつかのプロパティがあります。個々の日付、月、年などを表示できます。
例を見てみましょう
今日の曜日番号
date.today() 関数は曜日番号も返します。以下は曜日表です。 Monday 日曜日は0、日曜日は6。
| 日 | 曜日番号 |
|---|---|
| Monday | 0 |
| 火曜日 | 1 |
| 水曜日 | 2 |
| 木曜日 | 3 |
| 金曜日 | 4 |
| 土曜日 | 5 |
| 日曜日 | 6 |
Weekday Number は、インデックスが曜日に依存する配列に役立ちます。
ステップ 2) 次に、日付オブジェクトのインスタンスを作成します。
ステップ 3) 次に、日付を出力してコードを実行します。
出力は予想通りです。
Python 現在の日付と時刻: now() today()
ステップ1) Date オブジェクトと同様に、次も使用できます。 「日時オブジェクト」 in Python. Python 日付と時刻オブジェクトは日付と時刻を 時間、分、秒、ミリ秒。
datetime のコードを実行すると、現在の日付と時刻が出力されます。
ステップ2) 「DATETIME OBJECT」を使用すると、時間クラスを呼び出すこともできます。たとえば、日付なしで現在時刻だけを表示したいとします。
t = datetime.time(datetime.now())
- 時間クラスをインポートしました。 datetime.now() を使用して、現在の時刻の値を割り当てます。
- 現在の時刻の値を変数 t に代入しています。
そして、これで私にちょうど良い時間が与えられます。 それでは、このプログラムを実行してみましょう。
はい、ご覧のとおり、ここに日付と時刻が表示されています。そして次の行には、時刻だけが表示されています。
ステップ3) 曜日インデクサーを曜日の配列リストに適用することで、今日が何曜日かを特定します。
- 曜日演算子 (wd) には、現在の曜日に応じて (0~6) の番号が割り当てられます。ここでは、曜日 (月、火、水…日) のリストの配列を宣言しました。
- そのインデックス値を使用して、その日が何日であるかを確認します。 この場合、これは #2 で水曜日を表すため、出力では「どちらが水曜日ですか」と出力されます。
datetime now を使用して現在の日付と時刻を取得する完全なコードは次のとおりです。
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print (today) # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd=date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print("Today is day number %d" % wd) print("which is a " + days[wd]) if __name__== "__main__": main()
Strftime() を使用して日付と時刻の出力をフォーマットする方法
これまで、datetimeとdateの使い方を学んできました。 内のオブジェクト Python。 さらに一歩進んで、書式設定関数を使用して時刻と日付を書式設定する方法を学習します。
ステップ1) まず、年をフォーマットする簡単な手順を見てみましょう。 例を挙げて理解するのが良いでしょう。
- 私たちは、使用しました 「strftime関数」 フォーマット用。
- この関数は異なるものを使用します 制御コード 出力を与えるために。
- 各制御コードは、年、月、曜日、日付などのさまざまなパラメータに似ています。 [(%y/%Y – 年)、(%a/%A- 平日)、(%b/%B- 月)、(%d – 日)] 。
- 私たちの場合、それは (「%Y」) これは年に似ていますが、世紀を含む完全な年を出力します (例: 2018)。
ステップ2) ここで、(“%Y”) を小文字 (“%y)” に置き換えてコードを実行すると、出力には (18) ではなく (2018) のみが表示されます。 以下のスクリーンショットに示すように、年の世紀は表示されません。
ステップ3) strf関数では、日付、曜日、月、年をそれぞれ個別に指定できます。また、strftime関数の制御コードを少し変更することで、テキストの書式設定も可能です。
strftime 関数内で (%a) を大文字の A に置き換えると、つまり (%A) とすると、出力は「Fri」という略語ではなく「Friday」と表示されます。
ステップ4) 「Strftime」関数を使用すると、ローカル システムの時刻、日付、またはその両方を取得することもできます。
- %C- は現地の日付と時刻を示します
- %x- は現地の日付を示します
- %X- は現地時間を示します
出力では、期待どおりの結果が表示されます。
ステップ5) 「strftime 関数」を使用すると、24 時間または 12 時間の任意の形式で時間を呼び出すことができます。
時間には %I/H、分には %M、秒には %S のような制御コードを定義するだけで、さまざまな形式の時間を呼び出すことができます。
12時間 時間が宣言されています [print now.strftime(“%I:%M:%S %p) ]
24時間 時間が宣言されています [print now.strftime(“%H:%M”)]
datetime を String オブジェクトに変換する完全なコードは次のとおりです。
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print(now.strftime("%c")) print(now.strftime("%x")) print(now.strftime("%X")) ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print(now.strftime("%I:%M:%S %p")) # 12-Hour:Minute:Second:AM print(now.strftime("%H:%M")) # 24-Hour:Minute if __name__== "__main__": main()
Timedeltaとは何か Python?
タイムデルタ Python は期間を表すオブジェクトです。主に2つの日付と時刻間の期間を計算するために使用されます。また、差分日付と時刻を持つオブジェクトを取得するためにも使用されます。timedeltaオブジェクトは、加算、減算などの数学演算をサポートしています。trac乗算、除算など
Timedelta オブジェクトの使い方
自律的AI Python timedelta オブジェクトを使用すると、未来と過去の両方の時間を推定できます。 言い換えれば、特別な日、日付、時刻を予測するためのタイムスパンです。
この関数は時刻や日付を出力するためのものではなく、未来または過去について計算するものであることに注意してください。では、 Python よりよく理解するための timedelta の例。
ステップ1) Timedeltaオブジェクトを実行するには、まずimport文を宣言し、次にコードを実行する必要があります。
- timedelta のインポート文を書く
- 次に、スクリーンショットに示すように、時間デルタからオブジェクトを出力するコードを記述します。
- コードを実行します。timedeltaは365日8時間15分の範囲を表し、同じものを出力します。
紛らわしいですか? 次のステップが役立ちます-
ステップ2) 今日の日時を取得して、import ステートメントが正常に機能しているかどうかを確認してみましょう。 コードが実行されると、今日の日付が出力されます。これは、インポート ステートメントが正常に機能していることを意味します。
ステップ3) デルタ オブジェクトを使用して、今から 1 年後の日付を取得する方法を説明します。コードを実行すると、期待どおりの出力が得られます。
ステップ4) 時間デルタを使用して現在の日付と時刻から将来の日付を計算する方法の別の例
ステップ5) もっと複雑な例を見てみましょう。新年から何日経ったかを調べたいとします。次のように進めます。
- today= date.today() を使用すると、今日の日付が取得されます
- 新年は常に 1 月 1,1 日であることはわかっていますが、年は異なる場合があります。 nyd= date(today.year,XNUMX) を使用して、変数 nyd に新年を格納します。
- if nyd < today: 現在の日付が新年よりも大きいかどうかを比較します。大きい場合は、whileループに入ります。
- ((today-nyd).days) は、現在の日付と新年の差を DAYS で返します。
出力には、「元旦はすでに 11 日前に過ぎた」ことが示されています。
完全に動作するコードは次のとおりです
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print (timedelta(days=365, hours=8, minutes=15)) # print today's date print ("today is: " + str(datetime.now())) # print today's date one year from now print ("one year from now it will be:" + str(datetime.now() + timedelta(days=365))) # create a timedelta that uses more than one argument # print (in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4))) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print ("New Year day is already went by %d days ago" % ((today - nyd).days))
Python 2例
以下の例は、日付と時刻の操作を記述したものです。 Python 2. print は関数ではなくステートメントです。これらのバージョンは、レガシーシステムを維持する場合にのみ使用してください。 Python 2コード。
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print today # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd = date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print "Today is day number %d" % wd print "which is a " + days[wd] if __name__== "__main__": main()
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print now.strftime("%c") print now.strftime("%x") print now.strftime("%X") ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print now.strftime("%I:%M:%S %p") # 12-Hour:Minute:Second:AM print now.strftime("%H:%M") # 24-Hour:Minute if __name__== "__main__": main()
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print timedelta(days=365, hours=8, minutes=15) # print today's date print "today is: " + str(datetime.now()) # print today's date one year from now print "one year from now it will be:" + str(datetime.now() + timedelta(days=365)) # create a timedelta that uses more than one argument # print "in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4)) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print "New Year day is already went by %d days ago" % ((today - nyd).days)



















