strptime() これは、DateTime で使用できる別のメソッドであり、文字列形式のタイムスタンプを日付/時刻オブジェクトにフォーマットするために使用されます。
構文 : datetime.strptime(time_data, format_data)
パラメータ:
- time_data は文字列形式で表される時刻です。
- format_data は、この関数を使用して time_data から変換された日時形式のデータです。
strptime() はどのように機能するのでしょうか?
この関数は、時間を指定する文字列と、文字列を変更するための形式コードの 2 つの引数を受け取ります。文字列は、以下のコードのリストに従って DateTime オブジェクトに変更されます。
フォーマットコード
| フォーマットコード | 意味 | 例 |
|---|---|---|
| %a | 曜日の略称 | サン、マイ |
| %A | 完全な曜日名 | 日曜日月曜日 |
| %で | 曜日を 10 進数で表示 | 0…6 |
| %d | ゼロ埋めされた 10 進数としての日付 | 01、02 |
| %-d | 10 進数での月の日 | 1、2.. |
| %b | 月の略称 | 1月、2月 |
| %m | ゼロ埋めされた 10 進数としての月 | 01、02 |
| %-m | 月を 10 進数で表す | 1、2 |
| %B | 完全な月名 | 一月二月 |
| %そして | ゼロ埋めされた 10 進数としての世紀のない年 | 99.00 |
| %-そして | 10 進数としての世紀のない年 | 0.99 |
| %そして | 世紀を 10 進数で表した年 | 2000年、1999年 |
| %H | ゼロ埋めされた 10 進数としての時間 (24 時間時計) | 01、23 |
| %-H | 10進数での時間(24時間時計) | 1、23 |
| %私 | ゼロ埋めされた 10 進数としての時間 (12 時間時計) | 01、12 |
| %-私 | 10 進数としての時間 (12 時間時計) | 1、12 |
| %p | ロケールの午前または午後 | 午前午後 |
| %M | ゼロ埋めされた 10 進数としての分 | 01、59 |
| %-M | 分を 10 進数で表したもの | 1、59 |
| %S | ゼロ埋めされた 10 進数としての 2 番目 | 01、59 |
| %-S | 10 進数としての秒 | 1、59 |
| %f | マイクロ秒を 10 進数で表し、左側にゼロを埋め込みます。 | 000000、999999 |
| %と | +HHMM または -HHMM 形式の UTC オフセット | |
| %と | タイムゾーン名 | |
| %j | ゼロ埋めされた 10 進数としての日付 | 001、365 |
| %-j | 10 進数で表した日付 | 1,365 |
| %で | その年の週番号 (日曜日が最初) | 0、6 |
| %で | その年の週番号 | 00、53 |
| %c | ロケールの適切な日付と時刻の表現 | 月 9 月 30 07:06:05 2013 |
| %バツ | ロケールの適切な日付表現 | 1998/11/30 |
| %バツ | ロケールの適切な時間表現 | 10:03:43 |
| %% | リテラルの「%」文字 | % |
例 1: 日時を読み取り、strptime を使用してすべての時刻データを取得する Python プログラム。ここでは、文字列形式で時刻データを取得し、時、分、秒、ミリ秒を抽出します。
Python3
# import datetime module from datetime> from> datetime>import> datetime> # consider the time stamp in string format> # DD/MM/YY H:M:S.micros> time_data>=> '25/05/99 02:35:5.523'> # format the string in the given format :> # day/month/year hours/minutes/seconds-micro> # seconds> format_data>=> '%d/%m/%y %H:%M:%S.%f'> # Using strptime with datetime we will format> # string into datetime> date>=> datetime.strptime(time_data, format_data)> # display milli second> print>(date.microsecond)> # display hour> print>(date.hour)> # display minute> print>(date.minute)> # display second> print>(date.second)> # display date> print>(date)> |
>
>
出力:
523000
2
35
5
1999-05-25 02:35:05.523000
リナックスメイク
例 2: strptime を使用する Python コード。ここでは、文字列形式で時刻データを取得し、%d/%m/%y %H:%M:%S.%f 形式でタイムスタンプを抽出します。
Python3
# import datetime module from datetime> from> datetime>import> datetime> # consider the time stamps from a list in string> # format DD/MM/YY H:M:S.micros> time_data>=> [>'25/05/99 02:35:8.023'>,>'26/05/99 12:45:0.003'>,> >'27/05/99 07:35:5.523'>,>'28/05/99 05:15:55.523'>]> # format the string in the given format : day/month/year> # hours/minutes/seconds-micro seconds> format_data>=> '%d/%m/%y %H:%M:%S.%f'> # Using strptime with datetime we will format string> # into datetime> for> i>in> time_data:> >print>(datetime.strptime(i, format_data))> |
のインスタンス
>
>
出力:
1999-05-25 02:35:08.023000
1999-05-26 12:45:00.003000
1999-05-27 07:35:05.523000
1999-05-28 05:15:55.523000
strptime() 自体を使用することで、すべての日付を含む構造に続く時刻を取得できます。
構文 :
time.strptime(タイムスタンプ、'%d/%m/%y %H:%M:%S')
ここで、タイムスタンプには時刻と日付が含まれます
例 : 構造体の時間を取得するための Python コード:
Python3
#import time> import> time> # get data of 4 th april 2021 at time 9 pm> print>(time.strptime(>'04/04/21 09:31:22'>,>'%d/%m/%y %H:%M:%S'>))> # get data of 5 th april 2021 at time 9 pm> print>(time.strptime(>'05/04/21 09:00:42'>,>'%d/%m/%y %H:%M:%S'>))> # get data of 6 th april 2021 at time 9 pm> print>(time.strptime(>'06/04/21 09:11:42'>,>'%d/%m/%y %H:%M:%S'>))> # get data of 7 th april 2021 at time 9 pm> print>(time.strptime(>'07/04/21 09:41:12'>,>'%d/%m/%y %H:%M:%S'>))> |
>
>
出力:
time.struct_time(tm_year=2021, tm_mon=4, tm_mday=4, tm_hour=9, tm_min=31, tm_sec=22, tm_wday=6, tm_yday=94, tm_isdst=-1)
time.struct_time(tm_year=2021, tm_mon=4, tm_mday=5, tm_hour=9, tm_min=0, tm_sec=42, tm_wday=0, tm_yday=95, tm_isdst=-1)
time.struct_time(tm_year=2021, tm_mon=4, tm_mday=6, tm_hour=9, tm_min=11, tm_sec=42, tm_wday=1, tm_yday=96, tm_isdst=-1)
time.struct_time(tm_year=2021, tm_mon=4, tm_mday=7, tm_hour=9, tm_min=41, tm_sec=12, tm_wday=2, tm_yday=97, tm_isdst=-1)
文字列日時を yyyy-mm-dd 日時形式で取得することもできます。 yyyy-mm-dd は年-月-日を表します。 strptime() 関数を使用して、文字列形式を DateTime に変換できます。 「%Y/%m/%d」形式を使用して文字列を日時に取得します。
構文: datetime.datetime.strptime(入力,形式)
パラメータ:
- 入力は文字列日時です
- format は、「yyyy-mm-dd」という形式です。
- datetime はモジュールです
まず、モジュールがインポートされ、入力 DateTime 文字列が指定されます。次に、strptime を使用して必要な形式を取得し、date() 関数を使用して DateTime から日付を取得します。
例1 : 文字列日時形式を日時形式に変換する Python プログラム
私のライブクリクレット
Python3
# import the datetime module> import> datetime> # datetime in string format for may 25 1999> input> => '2021/05/25'> # format> format> => '%Y/%m/%d'> # convert from string format to datetime format> datetime>=> datetime.datetime.strptime(>input>,>format>)> # get the date from the datetime using date()> # function> print>(datetime.date())> |
>
>
出力:
2021-05-25
例 2: 文字列日時のリストを日時に変換します
Python3
# import the datetime module> import> datetime> # datetime in string format for list of dates> input> => [>'2021/05/25'>,>'2020/05/25'>,>'2019/02/15'>,>'1999/02/4'>]> # format> format> => '%Y/%m/%d'> for> i>in> input>:> > ># convert from string format to datetime format> ># and get the date> >print>(datetime.datetime.strptime(i,>format>).date())> |
>
>
出力:
2021-05-25
2020-05-25
2019-02-15
1999-02-04
DateTime を表示することもできます %d/%m/%Y %H:%M:%S フォーマット。このために、日付-月-年 時:分;秒の形式でデータを取得します。したがって、入力日時文字列を取得してこの形式を取得する必要があります
構文: datetime.strptime(input_date, %d/%m/%Y %H:%M:%S)
パラメータ:
画像付きのマークダウン
- datetime はモジュールです
- input_date は文字列の日時形式です。
- strptime は、input_date 文字列を datetime に変換するために使用されます。
例 3: 文字列日時を %d/%m/%Y %H:%M:%S 形式に取得する Python プログラム
Python3
#import datetime> from> datetime>import> datetime> # consider the datetime string in dd/mm/yyyy> # hh:mm:ss format> date>=> '25/05/2021 02:35:15'> # convert string datetime to dd/mm/yyyy hh:mm:ss> # format> datetime_date>=> datetime.strptime(date,>'%d/%m/%Y %H:%M:%S'>)> print>(datetime_date)> |
>
>
出力:
2021-05-25 02:35:15