将streamlit库的时间输入转换为自纪元以来的毫秒

0 投票
1 回答
18 浏览
提问于 2025-04-12 19:06

如何将来自Streamlit时间输入组件的输入转换为自Unix纪元以来的毫秒数?一天中的时间来自时间输入组件,而日期则以以下字符串格式表示。

day = '20240325' #YYYYMMDD
time = st.time_input('Execution time', step=0:1:00)
print(time_in_ms_since_epoch)

1 个回答

1

你需要把总秒数乘以1000,才能得到Unix时间戳。我写了简单的代码,希望你能理解。

import streamlit as st
from datetime import datetime, timezone, timedelta


day = '20240325' #YYYYMMDD
time = st.time_input('Execution time', step=60)


date_time = day + f'{time}'

把字符串格式的日期时间转换成日期时间对象。

date_time_res = datetime.strptime(date_time, '%Y%m%d%H:%M:%S')
    

创建时间戳。

epoch = datetime(2024, 3, 27, 0, 0, 0)

Unix时间戳的部分。

time_in_ms_since_epoch = int((epoch-date_time_res).total_seconds() * 1000)

print(time_in_ms_since_epoch)

撰写回答