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

如何从RadDatePicker获取选中日期时间?解决时分秒显示异常

嘿,我来帮你搞定RadDatePicker的这几个问题,还有那个让你头疼的时间显示bug!

问题1:如何从RadDatePicker控件获取选中的日期时间?

RadDatePicker的SelectedDate属性是核心,它返回一个Nullable<DateTime>类型的值(也就是可能为空)。稳妥的写法是先判断是否有选中值,再获取:

if (RadDatePicker1.SelectedDate.HasValue)
{
    DateTime selectedDateTime = RadDatePicker1.SelectedDate.Value;
    // 这里就可以对选中的日期时间做你需要的操作啦
}

如果你能确定控件一定有选中值,也可以直接用RadDatePicker1.SelectedDate.Value,但加个HasValue判断能避免空引用异常,更安全。

问题2:如何从RadDatePicker获取格式为MM/dd/yyyy hh:mm:ss的选中日期时间?

直接给ToString()方法传入指定格式字符串就行,同样记得先判断是否有值:

if (RadDatePicker1.SelectedDate.HasValue)
{
    string formattedDateTime = RadDatePicker1.SelectedDate.Value.ToString("MM/dd/yyyy hh:mm:ss");
    Response.Write(formattedDateTime);
}

小提醒:这里的hh是12小时制的小时,如果需要24小时制的话,把hh换成HH就可以啦。

排查:为什么用Response.Write(RadDatePicker1.SelectedDate.Value.ToString())得到的是1/17/2019 12:00:00 AM而非预期的1/17/2019 12:23:45?

这个问题大概率是因为你的RadDatePicker没启用时间选择功能,或者时间部分没被正确传递到后台。给你列几个常见原因和解决办法:

  • 原因1:控件只配置了日期选择,没开时间选择
    RadDatePicker默认可能只显示日期选择器,要支持选时间,你得在ASPX里给控件加TimeView配置,或者直接用专门的RadDateTimePicker(更适合需要时间的场景)。比如这样配置RadDatePicker:
    <telerik:RadDatePicker ID="RadDatePicker1" runat="server">
        <TimeView runat="server" Enabled="True"></TimeView>
        <DateInput runat="server" DisplayDateFormat="MM/dd/yyyy hh:mm:ss" />
    </telerik:RadDatePicker>
    
  • 原因2:时间部分没被正确提交到服务器
    就算前端显示了时间,如果DateInput的格式没配置对,时间值可能传不到后台。确保DisplayDateFormat和DateFormat都包含时间部分:
    <DateInput runat="server" DisplayDateFormat="MM/dd/yyyy hh:mm:ss" DateFormat="MM/dd/yyyy hh:mm:ss" />
    
  • 原因3:用户没选具体时间,控件用了默认值
    如果用户只选了日期没选时间,控件会默认把时间设为当天的0点(也就是12:00:00 AM)。先确认用户在前端确实选了具体的时间值哦。

另外,你也可以用浏览器开发者工具看看前端输入框里的完整值是不是包含时间,再对比后台拿到的值,这样能更快定位问题~

内容的提问来源于stack exchange,提问作者lingers

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:02:05