Pythonにおけるdatetimeオブジェクトの使い方


ccc

こんにちわ!東京都内でサラリーマンをしているAI・育児ブロガーのCCCです。 AI(人工知能)と子育てに関する記事を執筆しています。 WebシステムをベースとしたAIを活用することで生活をより便利にする方法を紹介し、育児について衣食住における役立つグッズや情報を配信しています。


Pythonにおけるdatetimeオブジェクトの使い方を教えてください。


ccc

Pythonはオフサイドルールに基づいたオブジェクト指向型のスクリプト言語です。オフサイドルールとは処理のまとまりをブロックごとに字下げをして文の範囲を指定するコーディングルールで、字下げのルールを強制することで可読性が高まり、コードの記述量を少なくできます。数値計算や画像処理、Web開発、ネットワーク、データベースといった専門的なライブラリが豊富で、機械学習やAIの分野で活用されています。


ccc

今回はPythonの使い方として、Pythonにおけるdatetimeオブジェクトの使い方をサンプルを用いて解説します。

日付と時刻の値を取得

now()は現在の日付と時刻の値を取得するメソッドです。事前にdatetimeモジュールをインポートします。datetimeクラスからnow()を使います。
次の例ではローカル環境で設定されている日付を表示します。

import datetime
temp=datetime.datetime.now()
print(temp)
#2020-12-13 11:11:11.012345

年月日の値をそれぞれ取得

年月日の値をそれぞれ参照できるプロパティが用意されています。

import datetime
temp=datetime.datetime.now()
print(temp.year, temp.month, temp.day)
#2020 12 13

時分秒の値をそれぞれ取得

時分秒の値をそれぞれ参照できるプロパティが用意されています。

import datetime
temp=datetime.datetime.now()
print(temp.hour, temp.minute, temp.second)
#11 11 11

日時の書式を指定して取得

strftimeメソッドを使って”YYYY/M/D 曜 00:00:00″の形式で日時を取得できます。

import datetime
temp=datetime.datetime.now()
print(temp.strftime("%Y/%m/%d %a %H:%M:%S"))
#2020/12/13 Sun 11:11:11

日時に対して演算

timedeltaメソッドを使って日付と時刻に対して演算することができます。
次の例では1日前と1日後の日付を取得します。

import datetime
temp=datetime.datetime.now()+datetime.timedelta(days=-1)
print(temp.strftime("%Y/%m/%d"))
#2020/12/14

import datetime
temp=datetime.datetime.now()+datetime.timedelta(days=1)
print(temp.strftime("%Y/%m/%d"))
2020/12/12

日時と日時の差を取得することもできます。

import datetime
temp1=datetime.datetime.now()
temp2=temp1+datetime.timedelta(days=-1)
print(temp1-temp2)
print((temp1-temp2).days)
print((temp1-temp2).seconds)
#1 day, 0:00:00
#1
#0