銀河鉄道

【Python】文字列を日付型に変える|datetime.strptime

サムネイル
[Python]Convert a stringinto datetime

datetime を使う

datetime.strptime() でフォーマットを明示してパースする

from datetime import datetime

def create_date_from_str(s: str) -> datetime:
    """Convert a flexible date string (with '/', '-', or '.') into datetime safely.
    柔軟な区切り文字(日付文字列)を安全に datetime に変換する
    """
    # Normalize delimiters|区切り文字を統一
    s = s.replace('-', '/').replace('.', '/')
    
    try:
        # Try standard format|標準フォーマットを試す
        return datetime.strptime(s, "%Y/%m/%d")
    except ValueError:
        # Validation failed|不正な日付
        raise ValueError(f"Invalid date format: {s}")

区切り文字が混ざる場合は、正規化してから処理すると安全

Example Usage|使用例

print(create_date_from_str("2025/10/06"))
print(create_date_from_str("2025-10-06"))
print(create_date_from_str("2025.10.6"))
print(create_date_from_str("2025/1/6"))

▶ 出力結果

2025-10-06 00:00:00
2025-10-06 00:00:00
2025-10-06 00:00:00
2025-01-06 00:00:00

不正日付の場合

create_date_from_str("2025/13/40")

ValueError: Invalid date format: 2025/13/40

Vocabulary

| datetime.strptime|文字列から日付を生成 |
| ValueError|値エラー |
| Normalize|正規化する |
| Exception Handling|例外処理 |
| Datetime Object|日付オブジェクト |

In Python, always use datetime.strptime() — not string slicing.

著者

author
月うさぎ

編集後記:
この記事の内容がベストではないかもしれません。

記事一覧