Python 日時、時間Delta、Strftime(フォーマット)と例
のdatetimeクラス Python 主に5つのクラスに分類されます。
- date – 日付(月、日、年)のみを操作します
- time – 曜日に依存しない時間 (時、分、秒、マイクロ秒)
- datetime – 時刻と日付の組み合わせ (月、日、年、時、秒、マイクロ秒)
- timedelta — 日付を操作するために使用する時間の長さ
- tzinfo — タイムゾーンを処理するための抽象クラス
Date および DateTime クラスの使用方法
ステップ 1) 日付時刻形式のコードを実行する前に Pythonをインポートすることが重要です Python 下のスクリーンショットに示すように、日付時刻モジュール。
これらのインポートステートメントは、 Python コードを書かずに日付と時刻を操作できるライブラリ。
実行する前に以下の点を考慮してください。 Python 日時フォーマットコード
from datetime import date
この行は、 Python インタープリタはdatetimeモジュールからdateクラスをインポートします Python残念ながら、この日付機能のコードは書いていません。使用するためにインポートするだけです。
ステップ 2) 次に、日付オブジェクトのインスタンスを作成します。
ステップ 3) 次に、日付を出力してコードを実行します。
出力は期待どおりです。
date.today() を使用して日付を出力します
date.today
関数には、それに関連付けられたいくつかのプロパティがあります。 個々の日/月/年などを印刷できます。
例を見てみましょう
今日の曜日番号
date.today() 関数を使用すると、曜日番号も得られます。で始まる平日のテーブルは次のとおりです。 Monday 0 として日曜日を 6 として
日 | 曜日番号 |
---|---|
Monday | 0 |
火曜日 | 1 |
Wednesday | 2 |
木曜日 | 3 |
金曜日 | 4 |
土曜日 | 5 |
日曜日 | 6 |
Weekday Number は、インデックスが曜日に依存する配列に役立ちます。
Python 現在の日付と時刻: now() today()
ステップ1) Date オブジェクトと同様に、次も使用できます。 「日時オブジェクト」 in Python. Python 日付と時刻オブジェクトは日付と時刻を 時間、分、秒、ミリ秒。
datetime のコードを実行すると、現在の日付と時刻が出力されます。
ステップ2) 「DATETIME OBJECT」を使用すると、時刻クラスを呼び出すこともできます。
日付を含めずに現在時刻だけを印刷したいとします。
t = datetime.time(datetime.now())
- 時間クラスをインポートしました。 datetime.now() を使用して、現在の時刻の値を割り当てます。
- 現在の時刻の値を変数 t に代入しています。
そして、これで私にちょうど良い時間が与えられます。 それでは、このプログラムを実行してみましょう。
さて、ここで日付と時刻を取得したことがわかります。 そして次の行、私にはそれだけで時間があります
ステップ3) 平日のインデクサーを平日の arrayList に適用して、今日が何日であるかを確認します。
- 曜日演算子 (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() を使用して日付と時刻の出力をフォーマットする方法
現時点では、日時と日付の使用方法を学習しました。 内のオブジェクト 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」ではなく「Firday」として出力されます。
ステップ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 オブジェクトは、加算、減算、乗算、除算などの数学演算をサポートします。
Timedelta オブジェクトの使い方
連絡先 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例
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)
まとめ
日付と時刻を単純な方法と複雑な方法の両方で操作するために、datetimeモジュールは次のようなさまざまなクラスまたはカテゴリを提供します。
- date – 日付(月、日、年)のみを操作します
- time – 曜日に依存しない時間 (時、分、秒、マイクロ秒)
- datetime – 時刻と日付の組み合わせ (月、日、年、時、秒、マイクロ秒)
- timedelta — 日付を操作するために使用する時間の長さ
- tzinfo — タイムゾーンを処理するための抽象クラス
日時オブジェクトの使用
- コードを実行する前に日時オブジェクトをインポートすることは必須です
- date.today 関数を使用して、個々の日付/月/年を印刷し、日のインデックスを作成します
- date.time オブジェクトを使用して、時間、分、秒、ミリ秒で時刻を取得します。
「str f time 関数」によるタイムアウトのフォーマット
- 「str f time 関数」を使って年の形式を変更する
- 日、日、月、年を個別に印刷します。
- 通話時間はいずれの形式でも 12 時間または 24 時間です
Timedelta オブジェクト
- timedeltaオブジェクトを使用すると、未来と過去の両方の時間を推定できます。
- 現在時刻から特別な日(誕生日)までの残り日数を計算します
- 現在時刻から特別な日(誕生日)の経過日数を計算します。