Python が文字列を日時 datetime に変換する方法

胡金庫 2023年1月30日
  1. datetime.strptime() 文字列を datetime に変換する
  2. datetime.strptime() の例
Python が文字列を日時 datetime に変換する方法

このチュートリアルでは、Python が文字列 stringdatetime オブジェクトに変換する方法を紹介し、次に一般的な時間形式変換を実装するコード例をリストします。

datetime.strptime() 文字列を datetime に変換する

前のチュートリアルでは、datetime.strftime() メソッドを使用して文字列形式で日時 datetime を取得する方法を学習しました。ここでは、datetime.strptime() メソッドを使用して、逆変換を実装します。2つのメソッド fp の違いは、それぞれ formatparse に対応しています。

datetime.strptime() メソッドは、指定された datetime 形式で入力文字列を解析し、解析が成功した場合、datetime オブジェクトを返します。

この strptime() 方法を使用する基本的な例を以下に示します。

from datetime import datetime

datetime.strptime("2018-01-31", "%Y-%m-%d")

結果は

datetime.datetime(2018, 1, 31, 0, 0)

参照用に、文字列形式コードのディレクティブをここにリストします

指令 意味
%a ロケールの省略名としての曜日。 日、月、…、土(en_US);だから、Mo、…、Sa(de_DE)
%A ロケールのフルネームとしての曜日。 日曜日、月曜日、…、土曜日(en_US);ソンタグ、モンタグ、…、サムスタッグ(de_DE)
%w 10 進数としての曜日。0 は日曜日、6 は土曜日です。 0、1、…、6
%d ゼロが埋め込まれた 10 進数としての日付。 01、02、…、31
%b ロケールの省略名としての月。 1 月、2 月、…、12 月(en_US); 1 月、2 月、…、デズ(de_DE)
%B ロケールのフルネームとしての月。 1 月、2 月、…、12 月(en_US); 1 月、2 月、…、12 月(de_DE)
%m ゼロが埋め込まれた 10 進数としての月。 01、02、…、12
%y ゼロが埋め込まれた 10 進数としての世紀のない年。 00、01、…、99
%Y 10 進数としての世紀を含む年。 0001、0002、…、2013、2014、…、9998、9999
%H ゼロが埋め込まれた 10 進数としての時間(24 時間制)。 00、01、…、23
%I ゼロが埋め込まれた 10 進数としての時間(12 時間制)。 01、02、…、12
%p AM または PM に相当するロケール。 AM、PM(en_US); am、pm(de_DE)
%M ゼロが埋め込まれた 10 進数としての分。 00、01、…、59
%S ゼロが埋め込まれた 10 進数としての秒。 00、01、…、59
%f 左側にゼロが埋め込まれた 10 進数としてのマイクロ秒。 000000、000001、…、999999
%z ±HHMM[SS](オブジェクトがナイーブである場合は、文字列を空にする) 形式の UTC オフセット。 (空)、+ 0000、-0400、+ 1030
%Z タイムゾーン名(オブジェクトが単純な場合は空の文字列)。 (空)、UTC、EST、CST
%j ゼロが埋め込まれた 10 進数としての日付。 001、002、…、366
%U ゼロが埋め込まれた 10 進数としての年の週番号(週の最初の日は日曜日)。新しい年の最初の日曜日に先行するすべての日は、0 週目と見なされます。 00、01、…、53
%W 10 進数としての年の週番号(週の最初の日は月曜日)。新しい年の最初の月曜日に先行するすべての日は、0 週目と見なされます。 00、01、…、53
%c ロケールの適切な日時表現。 火 8 月 16 日 21:30:00 1988(en_US); Di 16 Aug 21:30:00 1988(de_DE)
%x ロケールの適切な日付表現。 88/16/88(なし); 08/16/1988(en_US); 16.08.1988(de_DE)
%X ロケールの適切な時間表現。 21:30:00(en_US); 21:30:00(de_DE)
%% リテラル '%' 文字。 %

datetime.strptime() の例

7-May-2013 フォーマット

from datetime import datetime

dateString = "7-May-2018"
dateFormatter = "%u-%b-%Y"
datetime.strptime(dateString, dateFormatter)

出力:

datetime.datetime(2013, 5, 1, 0, 0)

31/12/2018 フォーマット

from datetime import datetime

dateString = "31/12/2013"
dateFormatter = "%d/%m/%Y"
datetime.strptime(dateString, dateFormatter)

出力:

datetime.datetime(2013, 12, 31, 0, 0)

Mon, July 16 2018 フォーマット

from datetime import datetime

dateString = "31/12/2013"
dateFormatter = "%d/%m/%Y"
datetime.strptime(dateString, dateFormatter)

出力:

datetime.datetime(2018, 7, 16, 0, 0)

Monday, July 16, 2018 20:01:56 フォーマット

from datetime import datetime

dateString = "Monday, July 16, 2018 20:01:56"
dateFormatter = "%A, %B %d, %Y %H:%M:%S"
datetime.strptime(dateString, dateFormatter)

出力:

datetime.datetime(2018, 7, 16, 20, 1, 56)
著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook

関連記事 - Python String

関連記事 - Python DateTime