Python
の標準ライブラリの datetime
モジュールを利用した現在日付・時刻の取得方法を説明していきます。
前提条件
下記の環境で動作検証しています。
- Python : 3.6.2
現在日時を取得する
import datetime
dt = datetime.datetime.now()
print(dt)
# 2020-05-05 21:27:27.557578
上記の実装で現在の日付、時刻を取得できます。 datetime
オブジェクトとして日付・時刻を取得しているので、任意の書式の文字列に変換することもできます。
print(dt.strftime('%Y年%m月%d日 %H:%M:%S'))
# 2020年05月05日 21:30:54
datetime
オブジェクトから年、月、日、時、分、秒、ミリ秒を取得することもできます。
# 年(year)
print(dt.year)
# 2020
# 月(month)
print(dt.month)
# 5
# 日(day)
print(dt.day)
# 5
# 時(hour)
print(dt.hour)
# 21
# 分(minute)
print(dt.minute)
# 35
# 秒(second)
print(dt.second)
# 28
# ミリ秒(microsecond)
print(dt.microsecond)
# 122017
現在日付を取得する
現在日時のオブジェクトは取得できたので、これを現在日付に変換してみます。
# 文字列に変換する場合
print(dt.strftime('%Y年%m月%d日'))
# 2020年05月05日
print("{0:%Y年%m月%d日}".format(dt))
# 2020年05月05日
# dateオブジェクトとして変換する場合
print(datetime.date(dt.year, dt.month, dt.day))
# 2020-05-05
変換方法はいくつかあるので、状況に応じた実装をすればよいと思います。
現在時刻を取得する
現在時刻に変換する方法は下記の通りです。
print(dt.strftime('%H:%M:%S'))
# 21:44:22
print("{0:%H:%M:%S}".format(dt))
# 21:44:22
タイムゾーンを考慮した現在日時の取得方法
datetime
オブジェクトはデフォルトではローカルな日時を返却しますが、「 now()
」でタイムゾーンを設定することで設定したタイムゾーンの日時を取得することができます。
dt_utc = datetime.datetime.now(datetime.timezone.utc)
print(dt_utc)
# 2020-05-05 12:48:23.851102+00:00
print(dt_utc.tzinfo)
# UTC
ちなみに UTC
の現在日時を取得するだけであれば、 UTC
の現在日時を取得するモジュールは標準で準備されています。
print(datetime.datetime.utcnow())
# 2020-05-05 12:51:13.624632
UNIX 時間(エポック秒)を取得したい場合
参考までに UNIX
時間の取得方法も説明しておきます。
UNIX
時間(エポック秒)とは、 UTC
(協定世界時)の1970年01月01日00時00分00秒からの経過秒数です。 time
モジュールの time()
関数を利用することで取得可能です。 float
型で UNIX
時間を取得できます。
import time
unix_time = time.time()
print(unix_time)
# 1588683359.849664
最後に
datetime
モジュールと time
モジュールの基本的な使用方法について説明しました。日付や時刻のフォーマットの方法やタイムゾーンの設定、 UNIX
時間の取得など、一言に現在日時と行ってもいろいろな取得方法や実装方法があるので、しっかり基礎をおさえて開発に活かしていきたいですね。
コメント