python
正直に言うと、現役エンジニアの私も、最初は「strftimeだっけ? strptimeだっけ?」と毎回検索していました。日付の処理は地味に面倒ですが、一度マスターしてしまえば、業務自動化(スクレイピングデータの整理や、レポートの自動作成など)の強力な武器になります。
この記事では、初心者の方がコピペするだけでそのまま使える「逆引き辞書」として、datetimeモジュールの使い方をギュッとまとめました。
これだけは必須!最初の1行
Pythonで日付を扱うときは、まずこの一行をコードの先頭に書きましょう。
python
from datetime import datetime, timedelta
今この瞬間の時間を取得する
「とりあえず今の時刻を表示したい」という時はこれです。
“`python
現在の日時を取得
now = datetime.now()
print(now)
出力例:2023-10-25 14:30:05.123456
“`
日付を「好きな形式」の文字列に変える (strftime)
APIに送る時や、ファイル名に日付を入れたい時に使います。strftime = String Format Time(時間を文字列にフォーマットする)と覚えましょう。
“`python
now = datetime.now()
よく使う形式
fmt1 = now.strftime(“%Y/%m/%d %H:%M:%S”) # 2023/10/25 14:30:05
fmt2 = now.strftime(“%Y年%m月%d日”) # 2023年10月25日
fmt3 = now.strftime(“%Y%m%d”) # 20231025(ファイル名によく使う)
print(fmt1)
“`
【よく使う記号まとめ】
– %Y:年(4桁)
– %m:月(0埋め2桁)
– %d:日(0埋め2桁)
– %H:時(24時間表記)
– %M:分
– %S:秒
文字列を「日付データ」に変換する (strptime)
「2023-10-25」というただの文字を、Pythonが計算できる「日付データ」に戻します。strptime = String Parse Time(文字列を解析して時間にする)という意味です。
“`python
date_str = “2023-10-25 15:00”
第2引数に、元の文字列がどんな形式かを指定するのがコツ!
date_dt = datetime.strptime(date_str, “%Y-%m-%d %H:%M”)
print(type(date_dt))
<class ‘datetime.datetime’> ← これで計算ができるようになる!
“`
日付の計算をする(1日後、1時間前など)
日付の足し算・引き算には timedelta を使います。
“`python
now = datetime.now()
10日後を計算
after_10days = now + timedelta(days=10)
5時間前を計算
before_5hours = now – timedelta(hours=5)
1週間前を計算
last_week = now – timedelta(weeks=1)
print(f”今は {now}”)
print(f”10日後は {after_10days}”)
“`
2つの日付の差分を求める
「締め切りまであと何日?」という計算も簡単です。
“`python
today = datetime.now()
deadline = datetime(2023, 12, 31) # 2023年12月31日
diff = deadline – today
print(f”期限まであと {diff.days} 日です!”)
“`
実務でよく使う!コピペ用便利コード
エンジニアが現場でよく使う「ちょっとした処理」をまとめました。
1. 今日の日付だけ取得(時間は不要なとき)
python
today_date = datetime.now().date()
print(today_date) # 2023-10-25
2. 月末の日付を求める
直接「月末」を出す機能はないので、「来月の1日の1日前」を計算するのが賢いやり方です。
“`python
import datetime
def get_last_day_of_month(year, month):
# 来月の1日を取得
if month == 12:
next_month = datetime.date(year + 1, 1, 1)
else:
next_month = datetime.date(year, month + 1, 1)
# その1日前が今月の月末
return next_month - datetime.timedelta(days=1)
print(get_last_day_of_month(2023, 10)) # 2023-10-31
“`
まとめ:エラーを防ぐコツ
Pythonの日付操作でエラーが出たら、大体はこのどちらかです。
- 「文字列」と「日付データ」を混ぜて計算しようとしている
strptimeで日付データに変換してから計算しましょう。
- フォーマットの記号(%Yとか%m)が間違っている
- 大文字・小文字も区別されるので、この記事の表をチェックしてください。
日付操作ができるようになると、「毎日決まった時間にメールを送る」「古いファイルを自動で削除する」といった効率化ツールが簡単に作れるようになります。
ぜひ今回のコードを自分のプログラムにペタペタ貼り付けて使ってみてください!

コメント