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

如何在C#中将DevExpress日期时间选择器转换为仅日期(不含时间)

解决DevExpress日期选择器仅提取日期格式的问题

最直接高效的方法

DevExpress的DateTimeEdit控件(你的dtpCUST_BD)的EditValue本身就是DateTime类型(只要控件正常绑定/设置了值),没必要先转字符串再解析,直接提取日期部分就行:

  • 获取纯日期的DateTime对象:
DateTime onlyDate = ((DateTime)dtpCUST_BD.EditValue).Date;
  • 转成你需要的01/05/1998格式字符串(这里是日/月/年,如果要月/日/年就用"MM/dd/yyyy"):
string formattedDate = onlyDate.ToString("dd/MM/yyyy");

让控件直接显示纯日期

如果希望控件本身就不显示时间,直接在设计器或代码里设置显示格式:

dtpCUST_BD.Properties.DisplayFormat.FormatString = "dd/MM/yyyy";
dtpCUST_BD.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
// 同时可以设置编辑时的格式,保持一致
dtpCUST_BD.Properties.EditFormat.FormatString = "dd/MM/yyyy";
dtpCUST_BD.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime;

设置后,控件显示的就是纯日期,直接取dtpCUST_BD.Text就能得到格式化后的字符串,取EditValue.Date还是纯日期的DateTime对象。

修正你原来的代码

你之前的代码做了多余的转换,而且ToShortDateString会受系统区域设置影响,不如直接指定格式:

// 如果你一定要用ToString再解析(不推荐,多此一举)
string formattedDate = DateTime.Parse(dtpCUST_BD.EditValue.ToString()).ToString("dd/MM/yyyy");

注意:格式字符串里的dd代表两位日期,MM代表两位月份,yyyy代表四位年份,根据你的需求调整顺序即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 14:22:44