工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Python

Pythonのstrptime()をマスター:文字列から正確に日付をパースする

Python strptime():文字列をdatetimeオブジェクトに変換する

このガイドでは、Pythonのdatetime.strptime()メソッドを使用して文字列からdatetimeオブジェクトを作成する方法を、実践的な例と包括的なフォーマットコードリファレンスとともに解説します。

動画:Pythonにおける日付と時刻

公式のPythonチュートリアルを見て、datetime処理の理解を深めましょう。

strptime()メソッドは、指定されたフォーマットに従う文字列からdatetimeオブジェクトを作成します。

注意: すべての文字列がパースできるわけではありません。入力はフォーマットコードと完全に一致する必要があります。


例1:シンプルな日付文字列の変換

from datetime import datetime
date_string = "21 June, 2018"
print("date_string =", date_string)
print("date_stringの型 =", type(date_string))
date_object = datetime.strptime(date_string, "%d %B, %Y")
print("date_object =", date_object)
print("date_objectの型 =", type(date_object))

プログラムを実行すると、出力は以下のようになります:


date_string = 21 June, 2018
date_stringの型 = <class 'str'>
date_object = 2018-06-21 00:00:00
date_objectの型 = <class 'datetime.datetime'>

strptime()の仕組み

strptime()クラスメソッドは2つの引数を受け取ります:

これらの入力に基づいて、メソッドは同じ瞬間を表すdatetimeオブジェクトを返します。

上記の例では、フォーマットコード%d %B, %Yは以下を意味します:


例2:曖昧な日付のパース

from datetime import datetime
dt_string = "12/11/2018 09:15:32"  # 日/月/年形式と仮定
dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S")
print("dt_object1 =", dt_object1)
# 月/日/年形式と仮定
dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S")
print("dt_object2 =", dt_object2)

プログラムの出力:


dt_object1 = 2018-11-12 09:15:32
dt_object2 = 2018-12-11 09:15:32

フォーマットコード完全一覧

以下の表は、strptime()で使用できるすべてのディレクティブをまとめたものです。詳細については、Python公式のdatetimeモジュールドキュメントを参照してください。

ディレクティブ意味例
%a省略された曜日名Sun, Mon, ...
%A完全な曜日名Sunday, Monday, ...
%w曜日を10進数で表す0, 1, ..., 6
%d月の日付(ゼロ埋め)01, 02, ..., 31
%-d月の日付(埋めなし)1, 2, ..., 30
%b省略された月名Jan, Feb, ..., Dec
%B完全な月名January, February, ...
%m月番号(ゼロ埋め)01, 02, ..., 12
%-m月番号(埋めなし)1, 2, ..., 12
%y世紀なしの年(ゼロ埋め)00, 01, ..., 99
%-y世紀なしの年(埋めなし)0, 1, ..., 99
%Y世紀付きの年2013, 2019, ...
%H時(24時間制、ゼロ埋め)00, 01, ..., 23
%-H時(24時間制、埋めなし)0, 1, ..., 23
%I時(12時間制、ゼロ埋め)01, 02, ..., 12
%-I時(12時間制、埋めなし)1, 2, ..., 12
%pロケールのAMまたはPMAM, PM
%M分(ゼロ埋め)00, 01, ..., 59
%-M分(埋めなし)0, 1, ..., 59
%S秒(ゼロ埋め)00, 01, ..., 59
%-S秒(埋めなし)0, 1, ..., 59
%fマイクロ秒(ゼロ埋め)000000 - 999999
%zUTCオフセット(+HHMMまたは-HHMM)
%Zタイムゾーン名
%j年間通算日(ゼロ埋め)001, 002, ..., 366
%-j年間通算日(埋めなし)1, 2, ..., 366
%U週番号(日曜日を週の初めとする)00, 01, ..., 53
%W週番号(月曜日を週の初めとする)00, 01, ..., 53
%cロケールの日付と時刻Mon Sep 30 07:06:05 2013
%xロケールの日付09/30/13
%Xロケールの時刻07:06:05
%%リテラルのパーセント記号%

よくあるエラー:ValueError

文字列とフォーマットコードが一致しない場合、strptime()はValueErrorを発生させます。例:

from datetime import datetime
date_string = "12/11/2018"  # 不正な形式 - 日 月 年を期待
date_object = datetime.strptime(date_string, "%d %m %Y")
print("date_object =", date_object)

このコードを実行すると:


ValueError: time data '12/11/2018' does not match format '%d %m %Y'

推奨リーディング: Python strftime()

Python

  1. Python キーワードと識別子: 予約語と命名規則をマスター
  2. Python データ型マスター: 実践ガイド
  3. Python 演算子完全マスター: 包括的ガイド
  4. Python pass文完全マスター: 実践ガイド
  5. Python 関数引数完全マスター: 位置引数・キーワード引数・デフォルト引数
  6. Python辞書完全ガイド:作成、操作、高度なテクニック
  7. Pythonイテレータ完全ガイド:仕組みと自作方法
  8. Pythonクロージャ解説:ネスト関数が変数を捕捉する仕組み
  9. Python正規表現(reモジュール)実践ガイド
  10. Python datetimeマスター:日付・時刻・タイムゾーン実践ガイド
  11. Pythonのtimeモジュールをマスター:関数、構造体、実践例