C# 里的 DateTimePicker 控件,用起来其实挺顺手,但不少开发者只拿它选日期,忽略了它还能直接选时间。这次就把几个实用技巧整理出来,方便快速查阅,也给有需要的同学一点参考。
先说默认情况:DateTimePicker 默认只显示日期(年、月、日),用户只能改日期部分。如果想让时间选择(时、分、秒)也派上用场,就得动几个属性配置。
在窗体上放一个 DateTimePicker,比如叫 dtpTime。要想显示时间,得把 Format 属性改成 Custom 或 Time;如果还想用上下箭头微调时间,那必须把 ShowUpDown 设为 true。两步走,先改 Format 为 Custom,给自定义格式留出空间。

接着把 ShowUpDown 设成 True,控件就切换成时间微调模式——上下箭头出现,点一下就能调。

然后设置 CustomFormat 属性,比如 "HH:mm:ss" 或者 "yyyy年MM月dd日 HH:mm:ss",控件就会按你指定的格式展示时间或日期时间组合。
用户选好值后,怎么完整获取?直接拿 Value 属性就行,它返回的是 DateTime 类型,包含完整的日期和时间。

如果只需要“XXXX年XX月XX日”这种中文日期字符串,用 ToString() 方法配合自定义格式串就能搞定。另一种方式:分别读取年份、月份、日期等单独字段,适合需要独立处理各时间单元的场景。
获取“XX:XX:XX”格式的时间字符串,参考下面代码:

当日期或时间变更时,需要响应事件。注意订阅 ValueChanged 事件,而不是 TextChanged 或其他不相关的事件。

对应的事件处理方法像这样:
private void dtpTime_ValueChanged(object sender, EventArgs e)
{
// 处理逻辑
}
如果想用代码给控件设置一个新日期时间,直接给 Value 属性赋值就行,简单直接。
另外,获取某个月份的第一天和最后一天(月初与月末),这段通用代码可以收藏备用:
(此处图片重复,原文最后一张图片未提供新地址,按原结构保留)
