Python DateTime、TimeDelta、Strftime(Format) と例
Python では、日付、時刻、および日時 クラスは、日付、時刻、および時間間隔を処理するための多くの関数を提供します。 Python の Date と datetime はオブジェクトであるため、それらを操作すると、文字列やタイムスタンプではなく、実際にオブジェクトを操作します。日付や時刻を操作するときはいつでも、datetime 関数をインポートする必要があります。
Python の日時クラスは、主に 5 つのクラスに分類されます。
- date – 日付のみを操作します (月、日、年)
- time – 曜日に依存しない時間 (時、分、秒、マイクロ秒)
- datetime – 時刻と日付の組み合わせ (月、日、年、時、秒、マイクロ秒)
- timedelta - 日付の操作に使用される期間
- tzinfo — タイム ゾーンを処理するための抽象クラス
このチュートリアルでは、次のことを学びます-
- Date &DateTime クラスの使い方
- date.today() を使用して日付を出力する
- Python の現在の日付と時刻:now() today()
- Strftime() で日付と時刻の出力をフォーマットする方法
- Timedelta オブジェクトの使用方法
Date &DateTime クラスの使い方
ステップ 1 ) Python で日時形式のコードを実行する前に、以下のスクリーンショットに示すように、Python 日時モジュールをインポートすることが重要です。
これらのインポート ステートメントは、コードを記述せずに日付と時刻を操作できる Python ライブラリの事前定義済みの機能です。
Python 日時形式コードを実行する前に、次の点を考慮してください
from datetime import date
この行は、Python インタープリターに、Python の datetime モジュールから日付クラスをインポートするように指示します。残念ながら、この日付機能のコードを書いているわけではなく、使用するためにインポートしているだけです
ステップ 2 ) 次に、日付オブジェクトのインスタンスを作成します。
ステップ 3 ) 次に、日付を出力してコードを実行します。
出力は期待どおりです。
date.today() を使用して日付を出力
date.today
関数には、それに関連付けられたいくつかのプロパティがあります。個々の日/月/年、その他多くのものを印刷できます
例を見てみましょう
今日の平日番号
date.today() 関数は、曜日番号も提供します。これは月曜日が 0、日曜日が 6 で始まる平日の表です
曜日番号は、インデックスが曜日に依存する配列に役立ちます。
Python の現在の日付と時刻:now() today()
ステップ 1) 日付オブジェクトと同様に、“DATETIME OBJECTS” も使用できます パイソンで。 Python の日付と時刻のオブジェクトは、時間、分、秒、ミリ秒で時刻とともに日付を提供します。
datetime のコードを実行すると、現在の日付と時刻が出力されます。
ステップ 2) 「DATETIME OBJECT」では時刻クラスも呼び出すことができます。
日付なしで現在の時刻だけを印刷したいとします。
t = datetime.time(datetime.now())
- 時間クラスをインポートしました。 datetime.now() を使用して現在の時刻の値を割り当てます
- 現在の時刻の値を変数 t に代入しています。
そして、これは私にちょうど時間を与えます.それでは、このプログラムを実行しましょう。
さて、ここで日付と時刻を取得したことがわかります。そして次の行、I've got just the time alone
ステップ 3) 平日のインデクサーを平日の arrayList に適用して、今日が何曜日かを確認します
- 平日の演算子 (wd) には、現在の曜日に応じて (0 ~ 6) の数字が割り当てられます。ここでは、日 (月、火、水…日) のリストの配列を宣言しました。
- そのインデックス値を使用して、今日が何日かを判断します。この例では #2 で、水曜日を表しているため、出力では「Which is a Monday.」と出力されます。
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 で datetime と date オブジェクトを使用する方法を学びました。さらに一歩進んで、書式設定関数を使用して時刻と日付を書式設定する方法を学習します。
ステップ 1) 最初に、年をフォーマットする簡単な手順を見ていきます。例を挙げて理解することをお勧めします。
- 「strftime 関数」 を使用しました 書式設定用
- この関数は異なる制御コードを使用します 出力を与える。
- 各制御コードは、年、月、曜日、日付などのさまざまなパラメータに似ています [(%y/%Y – 年)、(%a/%A- 曜日)、(%b/%B- 月) , (%d – 月の日)] .
- 私たちの場合、それは (“%Y”) です これは year に似ており、世紀を付けて完全な年を出力します (例:2018)。
ステップ 2) (“%Y”) を小文字 (つまり ( “%y)) に置き換えてコードを実行すると、出力は (2018) ではなく (18) のみを表示します。下のスクリーンショットに示すように、世紀は表示されません
ステップ 3) strf 関数は、日付、日、月、および年を個別に宣言できます。また、strftime 関数の制御コードを少し変更することで、テキストのスタイルをフォーマットできます。
strftime 関数内で、(%a) を大文字の A に置き換えると、つまり (%A) のように、出力は省略形の「Fri」ではなく「Firday」として出力されます。
ステップ 4) 「Strftime」関数を使用して、ローカル システムの時刻、日付、またはその両方を取得することもできます。
<オール>
出力では、期待どおりの結果を見ることができます
ステップ 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()
Python の Timedelta とは?
Python の Timedelta 期間を表すオブジェクトです。主に、2 つの日付と時刻の間の期間を計算するために使用されます。また、デルタの日付と時刻を持つオブジェクトを取得するためにも使用されます。 timedelta オブジェクトは、加算、減算、乗算、除算などの数学演算をサポートしています。
Timedelta オブジェクトの使用方法
Python の timedelta オブジェクトを使用すると、未来と過去の両方の時間を見積もることができます。 言い換えれば、特別な日、日付、または時間を予測するためのタイムスパンです。
この関数は時刻や日付を出力するためのものではなく、未来や過去について計算するためのものであることを忘れないでください .理解を深めるために、Python の timedelta の例を見てみましょう。
ステップ 1) Timedelta オブジェクトを実行するには、最初に import ステートメントを宣言してからコードを実行する必要があります
<オール>
混乱しますか?次のステップが役に立ちます-
ステップ 2) 今日の日付と時刻を取得して、インポート ステートメントが正常に機能しているかどうかを確認しましょう。コードが実行されると、今日の日付が出力されます。これは、インポート ステートメントがうまく機能していることを意味します
ステップ 3) デルタ オブジェクトを使用して、今から 1 年後の日付を取得する方法を見ていきます。コードを実行すると、期待どおりの出力が得られます。
ステップ 4) 現在の日付と時刻から将来の日付を計算するために時間デルタを使用する方法の別の例
ステップ 5) より複雑な例を見てみましょう。正月を何日過ぎたか知りたいです。進め方は次のとおりです
- today=date.today() を使用して、今日の日付を取得します
- 新年は常に 1 月 1 日ですが、年は異なる場合があります。 nyd=date(today.year,1,1) を使用して、新年を変数 nyd に保存します
- if nyd
- ((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 function」によるタイムアウトのフォーマット
- 「str f time 関数」を使用して年の形式を変更する
- 日、日、月、年を別々に印刷
- どのフォーマットでも 12 時間または 24 時間の呼び出し時間
タイムデルタ オブジェクト
- timedelta オブジェクトを使用すると、未来と過去の両方の時間を推定できます
- 現在時刻から特別な日(誕生日)までの残り日数を計算する
- 現在時刻から特別な日(誕生日)までの経過日数を計算する
Python