Python strftime()
Python strftime()
この記事では、日付、時刻、および日時オブジェクトを同等の文字列に変換する方法を (例を使用して) 学習します。
ビデオ:Python での日付と時刻
strftime()
メソッドは、日付、時刻、または日時オブジェクトを使用して日付と時刻を表す文字列を返します。
例 1:strftime() を使用して日時から文字列へ
以下のプログラムは datetime
を変換します 現在の日付と時刻を含むオブジェクトをさまざまな文字列形式に変換します。
from datetime import datetime
now = datetime.now() # current date and time
year = now.strftime("%Y")
print("year:", year)
month = now.strftime("%m")
print("month:", month)
day = now.strftime("%d")
print("day:", day)
time = now.strftime("%H:%M:%S")
print("time:", time)
date_time = now.strftime("%m/%d/%Y, %H:%M:%S")
print("date and time:",date_time)
プログラムを実行すると、出力は次のようになります:
year: 2018 month: 12 day: 24 time: 04:59:31 date and time: 12/24/2018, 04:59:31
ここでは、年 、日 、時間 と date_time は文字列ですが、現在 datetime
です オブジェクト。
strftime() の仕組み
上記のプログラムでは、 %Y
、 %m
、 %d
などはフォーマットコードです。 strftime()
メソッドは引数として 1 つ以上のフォーマット コードを取り、それに基づいてフォーマットされた文字列を返します。
datetime
をインポートしました datetime
のクラス モジュール。 datetime
のオブジェクトだからです。 クラスは strftime()
にアクセスできます 方法。 datetime
現在の日付と時刻を含むオブジェクトは now に保存されます 変数。 strftime()
メソッドを使用して、フォーマットされた文字列を作成できます。 strftime()
に渡す文字列 メソッドには、複数の形式コードを含めることができます。 例 2:タイムスタンプから文字列を作成する
from datetime import datetime
timestamp = 1528797322
date_time = datetime.fromtimestamp(timestamp)
print("Date time object:", date_time)
d = date_time.strftime("%m/%d/%Y, %H:%M:%S")
print("Output 2:", d)
d = date_time.strftime("%d %b, %Y")
print("Output 3:", d)
d = date_time.strftime("%d %B, %Y")
print("Output 4:", d)
d = date_time.strftime("%I%p")
print("Output 5:", d)
プログラムを実行すると、出力は次のようになります:
Date time object: 2018-06-12 09:55:22 Output 2: 06/12/2018, 09:55:22 Output 3: 12 Jun, 2018 Output 4: 12 June, 2018 Output 5: 09AM
フォーマット コード リスト
以下の表は、strftime()
に渡すことができるすべてのコードを示しています。 メソッド。
ディレクティブ | 意味 | 例 |
%a | 曜日の略称。 | 日、月、... |
%A | 完全な曜日名 | 日曜日、月曜日、... |
%w | 10 進数としての平日。 | 0, 1, ..., 6 |
%d | 0 で埋められた 10 進数としての日。 | 01、02、...、31 |
%-d | 10 進数としての日。 | 1, 2, ..., 30 |
%b | 月の略称。 | 1 月、2 月、...、12 月 |
%B | 完全な月の名前 | 1 月、2 月、... |
%m | ゼロで埋められた 10 進数としての月。 | 01、02、...、12 |
%-m | 10 進数としての月。 | 1, 2, ..., 12 |
%y | 0 で埋められた 10 進数としての世紀のない年。 | 00、01、...、99 |
%-y | 10 進数としての世紀のない年。 | 0, 1, ..., 99 |
%Y | 世紀を 10 進数として表した年。 | 2013年、2019年など |
%H | 時間 (24 時間制) を 0 で埋めた 10 進数で表します。 | 00、01、...、23 |
%-H | 10 進数としての時間 (24 時間制)。 | 0, 1, ..., 23 |
%I | 時間 (12 時間制) をゼロで埋めた 10 進数として表します。 | 01、02、...、12 |
%-I | 10 進数としての時間 (12 時間制)。 | 1, 2, ... 12 |
%p | ロケールの AM または PM。 | 午前、午後 |
%M | ゼロで埋められた 10 進数としての分。 | 00、01、...、59 |
%-M | 10 進数としての分。 | 0, 1, ..., 59 |
%S | 0 で埋められた 10 進数としての 2 番目。 | 00、01、...、59 |
%-S | 10 進数としての秒。 | 0, 1, ..., 59 |
%f | 10 進数としてのマイクロ秒。左側にゼロが埋め込まれます。 | 000000 - 999999 |
%z | +HHMM または -HHMM 形式の UTC オフセット | |
%Z | タイムゾーン名。 | |
%j | 0 で埋められた 10 進数としての年間通算日 | 001, 002, ..., 366 |
%-j | 10 進数としての年間通算日 | 1, 2, ..., 366 |
%U | 年の週番号 (週の最初の日としての日曜日)。新年の最初の日曜日より前のすべての日は、第 0 週と見なされます。 | 00、01、...、53 |
%W | 年の週番号 (月曜日を週の最初の日とする)。新年の最初の月曜日より前のすべての日は、第 0 週と見なされます。 | 00、01、...、53 |
%c | ロケールの適切な日付と時刻の表現。 | 2013 年 9 月 30 日月曜日 07:06:05 |
%x | ロケールの適切な日付表現。 | 2013 年 9 月 30 日 |
%X | ロケールの適切な時間表現。 | 07:06:05 |
%% | 文字通りの「%」文字。 | % |
例 3:ロケールの適切な日時
from datetime import datetime
timestamp = 1528797322
date_time = datetime.fromtimestamp(timestamp)
d = date_time.strftime("%c")
print("Output 1:", d)
d = date_time.strftime("%x")
print("Output 2:", d)
d = date_time.strftime("%X")
print("Output 3:", d)
プログラムを実行すると、出力は次のようになります:
Output 1: Tue Jun 12 09:55:22 2018 Output 2: 06/12/18 Output 3: 09:55:22
フォーマットコード %c
、 %x
と %X
ロケールの適切な日付と時刻の表現に使用されます。
また、Python strptime() を確認することをお勧めします。 strptime()
メソッドは datetime
を作成します 文字列からのオブジェクト。
Python