如何在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
相关产品推荐
相关产品推荐

