

python で 「文字列 を timedelta型」 に簡単に変換する方法はあるでしょうか？  
これはあまり需要がないのでしょうか？  
「timedelta型 を 文字列」に変更する方法はＷＥＢで散見されました。  
文字列は「01:23:15」 といったデータです。１時間２３分１５秒といったデータです。


CC BY-SA 4.0
2019-07-06T02:28:08.677
56439
2019-07-06T07:12:52.540
2019-07-06T02:38:05.890
19110
34450
question
python
文字列をtimedelta に変換する方法


標準ライブラリのみを利用して変換する方法です。この方法では、 `:` を区切り文字としてパースしております。

[code]

    import datetime
    
    data = "01:23:15"
    hours, minutes, seconds = map(int, data.split(":"))
    td = datetime.timedelta(hours=hours, minutes=minutes, seconds=seconds)
    print(type(td),td)
    
[/code]


CC BY-SA 4.0
2019-07-06T04:00:09.813
56444
2019-07-06T04:00:09.813
29826
56439
answer


前に同じようなことを考えたときにPythonのマニュアルを見ながらこれだったら出来そうと思って  
作ったのが下記のコードでした。datetimeの引き算がtimedeltaになることを利用しています

[code]

    from datetime import datetime,timedelta
    stamp = '01:23:15'
    t = datetime.strptime('2019-01-01 '+stamp, '%Y-%m-%d %H:%M:%S') - datetime(2019,1,1)
    print(type(t) , t)
    
    <class 'datetime.timedelta'> 1:23:15
    
[/code]


CC BY-SA 4.0
2019-07-06T07:12:52.540
56446
2019-07-06T07:12:52.540
34277
56439
answer