5

形式の日付がいくつかあります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でそれを行う別の方法はありますか?

4

3 に答える 3

17

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'
于 2012-10-07T19:27:24.020 に答える
6

モジュールを使用しdatetimeて解析します。

>>> from datetime import datetime
>>> date = datetime.strptime('2/28/1987', '%m/%d/%Y')
>>> date.strftime('%Y-%m-%d')
'1987-02-28'
于 2012-10-07T19:27:28.927 に答える
1

あなたが持っているものは、私がそれを書く方法に非常に近いです。私が提案できる唯一の大きな改善点は、正規表現を必要としないため、のsplit代わりにプレーンな古いものを使用することです:re.split

arr_str = str_date.split('/')

そのようなより複雑なことをする必要がある場合は、 をお勧めしますが、文字列バッシングよりもtime.strftimeはるかに高価です。

于 2012-10-07T19:27:13.100 に答える