You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Streamlit中st.date_input()如何去除时间戳T00:00:00?

如何去除Streamlit st.date_input()返回日期中的T00:00:00时间戳

当使用Streamlit的st.date_input()获取日期并存入DataFrame时,常会出现日期附带T00:00:00时间戳的问题,以下是两种简单的解决方法:

方法一:将日期格式化为字符串存入DataFrame

直接使用strftime()方法把st.date_input()返回的datetime.date对象格式化为纯日期字符串,这样存入DataFrame后就不会带时间戳:

修改你的newData定义部分:

if submitButton:
    st.write(dataClasse, genere, idCode, duradaClasse)
    newData = {
        "Data de la classe": dataClasse.strftime("%Y-%m-%d"),  # 格式化为YYYY-MM-DD的字符串
        "Genere": genere,
        "ID": idCode,
        "Durada de la classe": duradaClasse,
        "Preu": preu
    }
    df = df.append(newData, ignore_index=True)
    df.to_excel("classes_particulars.xlsx", index=False)

你可以根据需求调整strftime()的格式参数,比如"%d/%m/%Y"对应日/月/年的格式。

方法二:保存Excel时指定日期格式

如果希望DataFrame中保留日期类型(而非字符串),可以在保存到Excel时通过date_format参数指定日期显示格式,这样Excel中会显示纯日期:

df.to_excel("classes_particulars.xlsx", index=False, date_format="%Y-%m-%d")

这种方式下,DataFrame内部仍会存储完整的datetime类型,但Excel输出时仅显示日期部分。

补充说明

st.date_input()返回的是datetime.date对象,当该对象被存入pandas DataFrame时,会自动转换为datetime64[ns]类型,默认显示附带00:00:00的时间戳。上述两种方法分别从存储类型和输出格式两个角度解决了这个问题。

内容的提问来源于stack exchange,提问作者Adrià Martínez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 07:15:33