形式の日付がいくつかありますd/m/yyyy
(例: 2/28/1987)。ISO形式でお願いします: 1987-02-28
そのようにできると思いますが、少し重いようです:
str_date = '2/28/1987'
arr_str = re.split('/', str_date)
iso_date = arr_str[2]+'-'+arr_str[0][:2]+'-'+arr_str[1]
Pythonでそれを行う別の方法はありますか?
datetime
モジュールを使用できます:
datetime.datetime.strptime(str_date, '%m/%d/%Y').date().isoformat()
または、実行中のコードとして:
>>> import datetime
>>> str_date = '2/28/1987'
>>> datetime.datetime.strptime(str_date, '%m/%d/%Y').date().isoformat()
'1987-02-28'
モジュールを使用しdatetime
て解析します。
>>> from datetime import datetime
>>> date = datetime.strptime('2/28/1987', '%m/%d/%Y')
>>> date.strftime('%Y-%m-%d')
'1987-02-28'
あなたが持っているものは、私がそれを書く方法に非常に近いです。私が提案できる唯一の大きな改善点は、正規表現を必要としないため、のsplit
代わりにプレーンな古いものを使用することです:re.split
arr_str = str_date.split('/')
そのようなより複雑なことをする必要がある場合は、 をお勧めしますが、文字列バッシングよりもtime.strftime
はるかに高価です。