将streamlit库的时间输入转换为自纪元以来的毫秒
如何将来自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)