プログラミング

[Python]現在日付・時刻を取得する

プログラミング
この記事は約3分で読めます。
スポンサーリンク

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時間の取得など、一言に現在日時と行ってもいろいろな取得方法や実装方法があるので、しっかり基礎をおさえて開発に活かしていきたいですね。

スポンサーリンク
スポンサーリンク
KoEをフォローする
CodeLab

コメント

タイトルとURLをコピーしました