0Pricing
Python Academy · レッスン

書式設定と解析

strftimeとstrptimeを使用します

「書式設定と解析」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全4レッスンが含まれています。

なぜフォーマットと解析を行うのですか?

コンピューターは日付をオブジェクトとして保存しますが、人間はテキストとして読み取ります。フォーマットはdatetimeを文字列に変換し、解析は文字列をdatetimeに戻します。

  • strftime = string FROM time(フォーマット)。
  • strptime = string PARSE time(解析)。
from datetime import datetime
now = datetime(2026, 5, 30, 14, 5)
print(now)

最初のstrftime

datetimeに対して.strftime(format)を呼び出します。フォーマットコードは%で始まります。%Yは4桁の年、%mは月、%dは日です。

from datetime import datetime
d = datetime(2026, 5, 30)
print(d.strftime('%Y-%m-%d'))

時刻部分をフォーマットする

時刻のコードでは、%Hが時(00~23)、%Mが分、%Sが秒を表します。これらをリテラルテキストと自由に組み合わせられます。

from datetime import datetime
d = datetime(2026, 5, 30, 9, 7, 3)
print(d.strftime('%H:%M:%S'))

人間にわかりやすい名前

名前を生成するコードもあります。%Aは曜日の完全な名前、%Bは月の完全な名前、%bは月の略称です。

from datetime import datetime
d = datetime(2026, 5, 30)
print(d.strftime('%A, %B %d, %Y'))

12時間制とAM/PM

12時間制の時には%Iを、AMまたはPMには%pを使います。ユーザー向けの表示でよく使われます。

from datetime import datetime
d = datetime(2026, 5, 30, 14, 30)
print(d.strftime('%I:%M %p'))

strptimeで解析する

datetime.strptime(text, format)は、文字列をdatetimeに読み込みます。フォーマットは、コードも含めてテキストと完全に一致していなければなりません。

from datetime import datetime
text = '2026-05-30'
d = datetime.strptime(text, '%Y-%m-%d')
print(d)
print(type(d))

日付と時刻をまとめて解析する

完全なタイムスタンプを解析するには、フォーマットに時刻のコードを含めます。テキスト内の区切り文字(ハイフン、スペース、コロン)はすべて、パターンにも記述する必要があります。

from datetime import datetime
text = '30/05/2026 14:05'
d = datetime.strptime(text, '%d/%m/%Y %H:%M')
print(d.year, d.hour, d.minute)

往復変換:解析してからフォーマットする

よくある処理の流れは、入力されたテキストを解析し、処理を行ってから、出力用に再フォーマットすることです。別のレイアウトに変換することもできます。

from datetime import datetime
raw = '2026-05-30'
d = datetime.strptime(raw, '%Y-%m-%d')
pretty = d.strftime('%B %d, %Y')
print(pretty)

ISO形式のショートカット

.isoformat()は標準のISO 8601文字列を生成し、datetime.fromisoformat()はフォーマットコードなしでそれを読み戻します。

from datetime import datetime
d = datetime(2026, 5, 30, 14, 5)
s = d.isoformat()
print(s)
back = datetime.fromisoformat(s)
print(back == d)

解析エラーを処理する

テキストがフォーマットと一致しない場合、strptimeはValueErrorを発生させます。入力が不正な可能性がある場合は、try/exceptで囲んでください。

from datetime import datetime
try:
    datetime.strptime('not-a-date', '%Y-%m-%d')
except ValueError as e:
    print('Could not parse:', e)

年内の日付番号など

その他のコードとして、%jは年の何日目か(001~366)を、%wは曜日を数値(0=日曜日)で表します。レポートに便利です。

from datetime import datetime
d = datetime(2026, 5, 30)
print('Day of year:', d.strftime('%j'))

クイックチェック

文字列'2026-05-30'があります。これをdatetimeオブジェクトに変換する呼び出しはどれですか?

復習:フォーマットと解析

覚えておきましょう:

  • strftime(fmt)はdatetimeを文字列に変換します。
  • strptime(text, fmt)は文字列をdatetimeに変換します。
  • よく使うコードは、日付の%Y %m %d、時刻の%H %M %S、名前の%A %Bです。
  • isoformat()とfromisoformat()はISO標準を自動的に処理します。
from datetime import datetime
d = datetime.strptime('2026-05-30 14:05', '%Y-%m-%d %H:%M')
print(d.strftime('%A at %I:%M %p'))

よくある質問

「書式設定と解析」レッスンは無料ですか?

はい。「書式設定と解析」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全4レッスンが含まれています。

「書式設定と解析」で何を学びますか?

strftimeとstrptimeを使用します ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Python Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「書式設定と解析」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPython Academyレッスンでコードを書いて実行できますか?

はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. date、time、datetime
  2. timedeltaと算術演算
  3. 書式設定と解析
  4. zoneinfoによるタイムゾーン
← Python Academyに戻る