Pythonのdatetimeでformat変換 ミリ秒、文字列、タイムゾーン

Pythonのdatetimeモジュールの概要とその重要性

Pythonには、日付や時刻を扱うためのdatetimeモジュールがあります。このモジュールを使うことで、日付や時刻を表現したり、計算したりすることができます。

datetimeモジュールでの時間表現の基本形式

datetimeモジュールでは、日付と時刻を表すために、date、time、datetimeの3つのクラスが用意されています。

import datetime
# 日付を表すdateクラス
date = datetime.date(2021, 7, 1)
print(date) # 2021-07-01
# 時刻を表すtimeクラス
time = datetime.time(10, 30, 0)
print(time) # 10:30:00
# 日付と時刻を表すdatetimeクラス
date_time = datetime.datetime(2021, 7, 1, 10, 30, 0)
print(date_time) # 2021-07-01 10:30:00

datetimeを用いたミリ秒の表現とformat変換

datetimeモジュールでは、ミリ秒を表現するために、microsecond属性を使います。

import datetime
# datetimeにミリ秒を設定する
datetime_with_ms = datetime.datetime(2021, 7, 1, 10, 30, 0, 500000)
print(datetime_with_ms) # 2021-07-01 10:30:00.500000
# datetimeからミリ秒を取得する
ms = datetime_with_ms.microsecond // 1000
print(ms) # 500
# datetimeをミリ秒表記の文字列に変換する
ms_string = datetime_with_ms.strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
print(ms_string) # 2021-07-01 10:30:00.500
# ミリ秒表記の文字列からdatetimeに変換する
datetime_from_ms_string = datetime.datetime.strptime('2021-07-01 10:30:00.500', '%Y-%m-%d %H:%M:%S.%f')
print(datetime_from_ms_string) # 2021-07-01 10:30:00.500000

datetimeを用いた文字列へのformat変換

datetimeオブジェクトを文字列に変換するには、strftimeメソッドを使います。strftimeメソッドは、文字列として表現する形式を指定することができます。

import datetime
# datetimeを文字列に変換する
datetime_str = datetime.datetime(2021, 7, 1, 10, 30, 0).strftime('%Y-%m-%d %H:%M:%S')
print(datetime_str) # 2021-07-01 10:30:00
# 日本語表記の例
datetime_jp_str = datetime.datetime(2021, 7, 1, 10, 30, 0).strftime('%Y年%m月%d日 %H時%M分%S秒')
print(datetime_jp_str) # 2021年07月01日 10時30分00秒

datetimeでのタイムゾーンの設定とformat変換

datetimeオブジェクトをタイムゾーン付きで表現する場合、pytzモジュールを使うと便利です。

import datetime
import pytz
# タイムゾーンを設定する
tz = pytz.timezone('Asia/Tokyo')
# タイムゾーン付きのdatetimeを作成する
datetime_with_tz = datetime.datetime(2021, 7, 1, 10, 30, 0, tzinfo=tz)
print(datetime_with_tz) # 2021-07-01 10:30:00+09:00
# タイムゾーン付きのdatetimeをUTCに変換する
datetime_utc = datetime_with_tz.astimezone(pytz.utc)
print(datetime_utc) # 2021-07-01 01:30:00+00:00
# タイムゾーン付きのdatetimeを文字列に変換する
datetime_with_tz_str = datetime_with_tz.strftime('%Y-%m-%d %H:%M:%S %Z')
print(datetime_with_tz_str) # 2021-07-01 10:30:00 JST

日常生活や業務でのdatetimeモジュールの活用例

datetimeモジュールは、日付や時刻を扱うための基本的なツールです。日付や時刻を扱う必要があるプログラムを作成する場合には、このモジュールを使うことが多いです。具体的には、以下のような場面で使われます。

  • ログファイルのタイムスタンプの取得
  • データベースの日付や時刻の取り扱い
  • Webアプリケーションでの日付や時刻の表示
  • バッチ処理での日付や時刻の比較

まとめ

Pythonのdatetimeモジュールを使うことで、日付や時刻を表現したり、計算したりすることができます。ミリ秒の表現や文字列へのformat変換、タイムゾーンの設定とformat変換など、datetimeモジュールの基本的な使い方を紹介しました。日常生活や業務での活用例もあわせて紹介しましたので、ぜひ参考にしてください。