Python|現在の年月を「YYYY-MM」形式で取得する

1. はじめに

Pythonで日付や時間を扱う機会は非常に多くありますが、「現在の年月を『2025-07』のような形式で取得する」処理は、特にログ名やファイル名の自動生成、定期処理の判定、月次集計などで頻繁に使われます。

本記事では、Pythonの標準ライブラリであるdatetimeモジュールを使って、現在の年月を「YYYY-MM」形式で取得する方法を解説します。初心者でも理解しやすいように、基本から丁寧に説明し、よくある応用例や注意点も紹介していきます。

 

2. Pythonで現在の年月を「YYYY-MM」形式で取得する方法

2-1. datetimeモジュールとは

Pythonのdatetimeモジュールは、日付や時刻の操作を簡単に行える標準ライブラリです。外部ライブラリを使わずに、現在の日付・時刻の取得、文字列形式への変換などが行えます。

2-2. strftime()でフォーマット指定

年月を「2025-07」形式で取得するには、以下のようにdatetime.now()strftime()を組み合わせて使用します。

from datetime import datetime

# 現在の年月を「YYYY-MM」形式で取得
current_year_month = datetime.now().strftime("%Y-%m")

# 出力
print(current_year_month)

実行結果:

2025-07

2-3. フォーマット指定子の解説

  • %Y:西暦(4桁) → 例:2025
  • %m:月(2桁) → 例:07

つまり、"%Y-%m"と指定することで「2025-07」のような文字列が出力されるのです。

 

3. よくある使い方・応用例

3-1. ファイル名・ログ名に年月を付与

年月をファイル名に入れて、重複を避けたり、時系列で管理しやすくしたりできます。

from datetime import datetime

# 年月を取得
ym = datetime.now().strftime("%Y-%m")

# ファイル名に年月を使う例
filename = f"log_{ym}.txt"

print(filename)

実行結果:

log_2025-07.txt

3-2. 月ごとの処理制御

たとえば、「前回と同じ月かどうかをチェックして処理をスキップ」などにも活用できます。

from datetime import datetime

current_ym = datetime.now().strftime("%Y-%m")
last_ym = "2025-07"  # 前回処理時の年月

if current_ym == last_ym:
    print("今月はすでに処理済みです。")
else:
    print("新しい月の処理を開始します。")

実行結果:

今月はすでに処理済みです。

3-3. 月次レポートやグラフ作成のキーとして

Pandasなどで月ごとの集計をする際にも、「YYYY-MM」形式が非常に使いやすく、グラフや表のラベルにそのまま使用できます。

 

4. 注意点・エラー対策

4-1. ゼロ埋めされるかを確認

%mを使うことで「07」のようにゼロ埋めされます。%-m(Unix系)を使うと「7」になりますが、Windowsでは使えません。環境依存に注意してください。

4-2. strftimeは日付型でしか使えない

strftime()は文字列ではなく、datetimeオブジェクトに対して使う必要があります。

NG例:

# これはエラーになります
date_str = "2025-07-23"
print(date_str.strftime("%Y-%m"))

実行結果:

AttributeError: 'str' object has no attribute 'strftime'

→ 対処法:まず文字列をdatetime型に変換する必要があります。

4-3. 月の区切りを意識した処理

月が変わった直後(1日0時)に動作させる処理では、タイムゾーンやサーバ時刻によってズレる可能性があります。datetime.now()ではなく、datetime.utcnow()なども検討しましょう。

 

5. まとめ

本記事では、Pythonで現在の年月を「2025-07」の形式で取得する方法について詳しく解説しました。

  • datetime.now()で現在日時を取得
  • strftime("%Y-%m")で年月の文字列に整形
  • ファイル名、ログ出力、月次処理などに実務で活用可能

Pythonで日付を扱うスキルは、実務でも非常に役立ちます。今回のようなシンプルな操作から少しずつ慣れていくと、ログ処理や自動化スクリプトにも応用でき、実務力が一気に高まります。

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