Python

Pythonのdatetimeモジュールを使って現在時刻の取得や日時の計算をする方法

By 2021年2月25日March 25th, 2021No Comments

Pythonのdatetimeモジュールは現在時刻の取得や日時の計算などをする事ができます。こちらの記事ではdatetimeモジュールのオブジェクトの使い方や日時の計算をする紹介をしていきます。

はじめにdatetimeモジュールをインポートしておきます。

import datetime

Pythonのdatetime( )で日時を作成する方法 

datetime( )オブジェクトは日時を作成することができます。datetimeオブジェクトには「year」「month」「day」「hour」「minute」「second」「microsecond」などの日付と時刻の情報があります。それらを使って情報を取得します。構文は下記になります。

datetime.datetime (year, month, day, hour=時間, second=秒,maicrosecond=マイクロ秒, tzinfo=None)

「year」「month」「day」以外は指定せずに省略することもできます。省略した場合は初期値が0になります。

import datetime
dates = datetime.datetime(year=2021, month=2, day=12, hour=10, minute=30)
print(dates)

結果:

2021-02-12 10:30:00


datetime.datetime型のオブジェクトを作成しました。「秒」は指定しなかったので初期値0が表示されています。

日付だけを作成したい場合はdatetime.date型のオブジェクトを使います。構文は下記になります。

datetime.date(year=年, month=月, day=日)

dates = datetime.date(year=2021, month=2, day=12)
print(dates)

結果:

2021-02-12


日付だけを作成する事ができました。時間だけを作成したい場合はdatetime.time型を使います。構文は下記になります。

datetime.time(hour=時間, minute=分, second=秒)

dates = datetime.time(hour=10, minute=30, second=50)
print(dates)

結果:

10:30:50


このようにdatetimeオブジェクトを使えば任意の日付と時刻を指定して作成する事ができます。

Pythonのdatetime.now( )で現在時刻を取得する方法

datetimeオブジェクトで現在時刻を取得するにはnow( )メソッドを使います。

import datetime
dates= datetime.datetime.now()
print(dates)

結果:

2021-02-13 13:50:11.451075


now( )メソッドで現在時刻を取得する事ができました。実行結果はコードを実行した日時や環境で変わります。下記のように年月日や日時を一つずつ表示する事もできます

「年」だけを取得する場合。

print(dates.year,"年")

結果:

2021 年


「月」だけ取得する場合。

print(dates.month, "月")

結果:

 2 月


「日」だけ取得する場合。

print(dates.day, "日")

結果:

13 日


「時間」だけ取得する場合。

print(dates.hour, "時")

結果:

13 時


「分」だけ取得する場合。

print(dates.minute, "分")

結果:

56 分


「秒」だけ取得する場合。

print(dates.second, "秒")

結果:

51 秒


「マイクロ秒」だけ取得する場合。

print(dates.microsecond, "マイクロ秒")

結果:

309311 マイクロ秒


このように年月日や日時を一つずつ取得する事ができました。

Pythonのdate.today( )を使って現在の年月日だけを取得する方法

現在の年月日だけを取得するにはdate.today( )メソッドを使うと取得する事ができます。

import datetaime
date_today = datetime.date.today( )
print(date_today)

結果:

2021-02-12


datetime.date.today( )とすることで現在の年月日や日付を取得する事ができました。こちらも年月日を一つずつ取得する事ができます。

「年」だけを取得する場合。

print(date_today.year, "年")

結果

2021 年


「月」だけを取得する場合。

print(date_today.month, "月")

結果:

2 月


「日」だけを取得する場合。

print(date_today.day, "日")

12 日


このように年月日を一つずつ取得する事ができました。ただしtoday( )は「hour」などの時間を取得することはできません。

timedelta( )オブジェクトを使って日付の計算方法

timedelta( )オブジェクトを使うと日付の足し算や引き算をして差分を計算することができます。

timedelta( )は引数に日付や時刻を指定して時刻間の差を表します。timedelta( )の引数に指定できるコンストラクタは下記になります。ただし年や月の単位を指定する事はできません。

datetime.timedelta(days=日, seconds=秒, microseconds=マイクロ秒,milliseconds=ミリ秒, minutes=分, hours=時, weeks=週)

import datetime
dates= datetime.datetime.now()
print(dates)

結果:

2021-02-13 02:16:32.859107


まずは差分が分かるようにdatetime.now( )を使って現在時刻を取得しました。この現在時刻から5日後の日付を加算して取得します。

dates5 = datetime.timedelta(days=5)after5days = dates + dates5print(after5days)

結果:

2021-02-18 02:22:39.938919


さらに現在時刻の5日前の日付を減算して取得します。

dates_5 = datetime.timedelta(days=-5)before5days = dates + dates_5print(before5days)

結果:

2021-02-08 02:22:39.938919


現在時刻から5日の差分を計算して取得する事ができました。今回は日付でしたがtimedelta( )を使えば数時間前などの時刻の加算や減算をする事ができます。

まとめ

Pythonの標準ライブラリにあるdatetimeモジュールを使って日付や日時の処理をする方法でした。現在時刻を表示をしたり時刻の日付を作成して差分を計算することもできました。以上、Pythonで日時の取得や作成方法や計算方法についてでした。

Udemyの動画学習でもPythonを勉強しよう!

「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!

UdemyのPythonおすすめ33講座レビューリスト
HOSL

Author HOSL

More posts by HOSL