【Python】現在日時を取得して任意の形式の文字列に変換する方法

Pythonでログの出力時刻を記録したり、ファイル名に日時を含めたりする場合、datetime クラスの now() メソッドと strftime() メソッドを組み合わせるのが基本パターンです。

ここでは、現在の日時(年月日時分秒)を取得し、それを「2025-12-15 10:30:00」のような読みやすい文字列フォーマットに変換する実装方法を解説します。

目次

実装例:処理実行日時の記録

バッチ処理やスクリプトが実行されたタイミングを取得し、標準的な日時フォーマットで表示するシナリオです。

ソースコード

from datetime import datetime

# 1. 現在の日時(datetimeオブジェクト)を取得
# システムのローカル時間を取得します
current_timestamp = datetime.now()

# 2. datetimeオブジェクトを文字列に変換 (Formatting)
# strftime(フォーマット文字列) を使用
# %Y: 西暦4桁, %m: 月(0埋め), %d: 日(0埋め)
# %H: 時(24時間表記), %M: 分, %S: 秒
formatted_date = current_timestamp.strftime("%Y-%m-%d %H:%M:%S")

# 結果の出力
print(f"取得したオブジェクト: {current_timestamp}")
print(f"型: {type(current_timestamp)}")
print("-" * 40)
print(f"フォーマット変換後  : {formatted_date}")
print(f"型: {type(formatted_date)}")

実行結果

取得したオブジェクト: 2025-12-15 18:05:30.123456
型: <class 'datetime.datetime'>
----------------------------------------
フォーマット変換後  : 2025-12-15 18:05:30
型: <class 'str'>

解説

datetime.now()

datetime.now() は、プログラムが実行されているシステムの「現在時刻(ローカルタイム)」を持つ datetime オブジェクトを返します。このオブジェクトはそのままでは計算用のデータ型ですが、画面表示やファイル保存用には文字列への変換が必要です。

strftime() メソッド

strftime(String Format Time)メソッドは、指定した書式(フォーマットコード)に従って、日時オブジェクトを文字列に変換します。

よく使われる書式指定子:

指定子意味
%Y西暦(4桁)2025
%m月(0埋め2桁)01, 12
%d日(0埋め2桁)05, 31
%H時(24時間表記)09, 23
%M00, 59
%S05, 59
%A曜日(英語)Sunday, Monday

これらを組み合わせることで、"%Y/%m/%d""%H:%M" など、用途に合わせた自由な形式の日付文字列を作成できます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次