1. ホーム
  2. パイソン

Pythonの日時指定文字列: strftime() strptime

2022-03-15 11:47:04

strptime() は、入力された文字列の時間 (最初の引数) を指定されたフォーマット (2番目の引数) の datetime 型に変換します; string->datetime

strftime() は、入力された datetime の時間 (最初の引数) を指定されたフォーマット (2番目の引数) の文字列型に変換します; datetime -> string。

指定されたフォーマットに対応する位置の時刻が空の場合、デフォルトは0です

Convert a string to a date

import datetime # Introduce datetime module

time= datetime.strptime('2018-4-19 11:19:59','%Y-%m-%d %H:%M:%S') # convert string to time

print time #output time information

Convert a date to a string

import datetime #Introduce datetime module

str = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') #Get the current time and convert it to a string

print str #output string information

datetime.day,datetime.month,datetime.year represent the day, month and year of a datetime object respectively; as follows
from datetime import datetime


dt=datetime.now() #Create a datetime class object


print dt.year,dt.month,dt.day

'''

と出力されます。

2019 09 08

'''

strftime()はdatetimeオブジェクトをフォーマットするために使用され、時には非常に便利です。

まず、書式を見てみましょう。datetime.strftime('%' ) %の後に制御文字を続けて、次のようにします。

フォーマット文字 説明

a 曜日を表す略語:例:Monday, returns Mon

A 曜日を表す単語の完全なスペル:例:Monday, return Monday

b 月の略語:例:1月、Janを返す

B 月を表す引用語の省略形:例:January, then return January

c は、03/08/15 23:01:26 のように、日時を表す文字列を返します。

dは現在時刻を当月の初日として返します。

f マイクロ秒を表す。範囲 [0,999999]

H 24時間表示での現在の時間の表現

I 12 時間形式での現在の時間

j 現在の日を日として返す Range [001,366].

m 月を返す 範囲 [0,12]

M 分数を返す 範囲 [0,59]

P AM か PM かを返します-AM か PM か

S マニュアルに記載されている秒数の範囲 [0,61]...を返す

U 現在の週が何週目かを返す 日曜日を初日とする

W 月曜日を初日とするその年の週を返します。

w 現在の週の日数。範囲は [0, 6] で、6 は日曜日です。

x 日付の文字列表現:09/08/19

X 時刻の文字列表現: 23:22:08

y 19年を表す2つの数字

%Y 4桁の年号で2019年

z 時刻からの間隔 (現地時間の場合、空文字列を返す)

Z タイムゾーン名 (ローカル時刻の場合、空文字列を返す)

いくつか例を挙げると

from datetime import datetime

dt = datetime.now()

print '時間: (%Y-%m-%d %H:%M:%S %f): ' , dt.strftime( '%Y-%m-%d %H:%M:%S %f' )

print '時間: (%Y-%m-%d %H:%M:%S %p): ' , dt.strftime( '%y-%m-%d %I:%M:%S %p' )

print '週の略語 %%a: %s ' % dt.strftime( '%a' )

print '週の完全なスペル %%A: %s ' % dt.strftime( '%A' )

print '月の省略形 %%b: %s ' % dt.strftime( '%b' )

print '月のフルバッチ %%B: %s ' % dt.strftime( '%B' )

print '日付時刻 %%c: %s ' % dt.strftime( '%c' )

print '今日は週のうち %s の日です ' % dt.strftime( '%w' )

print '今日は一年のうち %s の日 ' % dt.strftime( '%j' )

print '今週は今年の %s 週です ' % dt.strftime( '%U' )

print '今日は月の%s日です ' % dt.strftime( '%d' )

'''

出力は次のようになります。

時間:(%Y-%m-%d %H:%M:%S %f):2019-09-08 15:07:32 181000

時間:(%Y-%m-%d %H:%M:%S %p): 19-09-08 13:21:27 PM

週の省略形 %a: 日

曜日フルスペル %A: 日曜日

月の略語 %b: 3月

月フルバッチ %B:3月

日付 時間%c: 09/08/119 15:07:32

今日は第0週目の日

今日は1年で067日目です。

今週は第10週目です

今日は08日

'''