Pythonで日付・日時を取得する方法

pythonで日付を取得する記事のアイキャッチPython

pythonで日付・日時を取得するにはdatetimeライブラリを使います。
他にもtimeライブラリがありますが、多分datetimeの方が簡単なのでこちらの方法を紹介しようと思います。

日付を取得

日付のみを取得するにはdatetime.dateを使います。
具体的にはtoday()を呼び出すことで日付を取得することが可能です。
ちなみに返ってくるのは’datetime.date’オブジェクトです。

import datetime

today = datetime.date.today()
print(today)
# 2021-09-20

‘datetime.date’オブジェクトは年月日に個別でアクセスすることもできます。

today = datetime.date.today()
print(today.year)
print(today.month)
print(today.day)
# 2021
# 9
# 20

日時を取得

日付ではなく日時を取得したい場合はdatetime.datetimeを使います。
具体的にはnow()を呼び出します。
返ってくるのは’datetime.datetime’オブジェクトです。
使うクラスは日付の場合はdate(日付) , 日時の場合はdate time(日付 時間) と覚えやすいですね。

こちらも年月日時分秒マイクロ秒に個別でアクセスができます。

import datetime

day_and_time = datetime.datetime.now()
print(day_and_time)
print(day_and_time.year)
print(day_and_time.month)
print(day_and_time.day)
print(day_and_time.hour)
print(day_and_time.minute)
print(day_and_time.second)
print(day_and_time.microsecond)
# 2021-09-20 11:32:28.460503
# 2021
# 9
# 20
# 11
# 32
# 28
# 460503

タイムゾーンの設定

実際に自分で日時を取得してみるとわかるのですが、-9時間ほど時差が生じてしまっています。
これはタイムゾーンが日本に設定されていないからです。

正しく取得するためにはタイムゾーンを日本に設定してやる必要があるわけです。
今回はpytzを使ったタイムゾーン設定を行います。

import datetime
import pytz

date = datetime.datetime.now()
Tokyo_timezone = pytz.timezone('Asia/Tokyo')
Tokyo_datetime = date.astimezone(Tokyo_timezone) 
print(date)
print(Tokyo_datetime)
# 2021-09-21 10:23:43.371090
# 2021-09-21 19:23:43.371090+09:00

タイムゾーン設定はこちらの記事がわかりやすかったです

pytzを使ってpythonでタイムゾーンを扱う"正しい"方法 - Qiita
各国のタイムゾーンを扱うpytzPython のタイムゾーンと言えば pytzPython 3 になって標準ライブラリに timezone が出来ましたが、便利な pytz もよく使います。i…

コメント