ISO 8601表記の時間を(PT18M17S)を「◯秒」や「◯分◯秒」に変換する方法。
2022/6/13
2022/7/7
Youtube APIの再生時間などを取得すると「PT18M17S」という表記で出力されます。
少しデータの表記を加工したかったので、変換方法をまとめておきます。
やりたいこと
PT18M17S
を「1097秒」や「18分17秒」といった表記に変換したい。
duration = "PT18M17S" # 18分17秒
⑴「.replace()」を使って変換
duration = "PT18M17S"
time = duration.replace('PT','').replace('H','時間').replace('M','分').replace('S','秒')
print(time)
# 18分17秒
⑵ ライブラリ「isodate」を使って変換
$ pip install isodate
import isodate
duration = "PT18M17S"
td = isodate.parse_duration(duration)
seconds = td.total_seconds()
print(seconds)
# 1097.0
秒数から「XX:XX:XX」表記に変換する
import datetime
# 「x(秒)」から「x:xx:xx」形式に変更
def get_time(td):
m, s = divmod(td.seconds, 60)
h, m = divmod(m, 60)
if h == 0: # 1時間未満であれば時間表記は省略
return f'{m}:{s}'
return f'{h}:{m}:{s}'
td = datetime.timedelta(seconds=1097.0)
time = get_time(td)
print(time)
# 18:17
おまけ:ISO 8601表記の意味
P[n]Y[n]M[n]DT[n]H[n]M[n]S
「P」は期間を表して、「T」は時間を表しています。
P | 「期間」を表す指定子 |
◯Y | 年 |
◯M | 月 |
◯D | 日 |
T | 「時間」を表す指定子 |
◯H | 時間 |
◯M | 分 |
◯S | 秒 |
最近の記事

音楽生成AI「Suno」の使い方まとめ!作詞作曲が簡単にできる?
簡単に曲が作れるAIということでよく聞く「Suno(Chirp)」についてまとめました。
目次「Suno」とはテキストからさまざまな音声を生成する「Bark」歌詞から曲を生成する「Chirp」...
2023/11/24
2023/11/24

【Open AI】APIの料金まとめ|GPT・DALL·E・Whisperなど
Open AIのAPI(一部)の料金をまとめました。
参考のために日本円は「1ドル150円」で換算をしています。
目次Text generation: テキスト生成Assistants ...
2023/11/22
2023/11/22

【Next.js】Assistants APIの基本的なコードまとめ。
Open AIの「Assistants API」をNext.jsで使用する時の基本的なコードをまとめました。
目次Open AIのAPIセットアップ基本の使い方Threads: スレッドを作る...
2023/11/21
2023/11/21

【Next.js】Open AIのAPIでファイルをアップロードする方法。
今回は、Next.jsサイトからOpen AIのAPI(Upload file)で、ファイルをアップロードする方法を実装するのに時間がかかったのでその過程と最終コードをまとめます。(Vercelにデ...
2023/11/21
2023/11/22

「生成系AIのWEBプロダクトTOP50」をまとめてみる。
Andreessen Horowitzが出している記事で紹介されている「AIプロダクトの月間訪問者数ランキングTOP50」のサービスをまとめました。
目次ChatGPTcharacter.ai...
2023/10/3
2023/10/3

【Next.js 13】NextAuth+FireStoreにユーザー情報を保存する。
今回は、以下の3つをNext.js 13で実装するためのメモです。
Googleアカウントでログインできる
アカウント、セッション情報をFirestoreに保存する
サーバーサイ...
2023/7/12
2023/7/12