private void frmQuery_Load(object sender, EventArgs e)
{
dateTimePicker1.Format = DateTimePickerFormat.Custom; //设置为显示格式为自定义
dateTimePicker1.CustomFormat = "yyyy-MM-dd"; //设置显示格式
...
dtpS.Text = DateTime.Now.Year + "-" + DateTime.Now.Month + "-1"; //设为本月第一天
dtpE.Text = DateTime.Now.Date.ToString(); //设为当前日期
}
设置了CustomFormat后dateTimePicker会以不同的方式显示,它的Text属性会有相应变化,但Value值不变.例如:2008年9月1日,当CustomFormat = "yyyy-MM-dd"; 后dateTimePicker.Text为2008-09-01,dateTimePicker.Value仍为2008-9-1(不论CustomFormat怎么设置,Value值的格式不变.
如果习惯取Value值可以将它ToString后再利用String的函数来处理日期:
Value.ToString("u").Substring(0, 10)也可以得到2008-09-01这种格式.
//计算两日期之间之差
DateTime dateS = dtpS.Value.Date,dateE=dtpE.Value.Date;
TimeSpan dateDif = dateE.Subtract(dateS);
rtbResults.AppendText("共查询" + dateDif.Days.ToString() + "天/n" ); //取两日期之差的天数
CustomFormat 属性的可选值:
格式字符串
说明
d
一位数或两位数的天数。
dd
两位数的天数。一位数天数的前面加一个零。
ddd
三个字符的星期几缩写。
dddd
完整的星期几名称。
h
12 小时格式的一位数或两位数小时数。
hh
12 小时格式的两位数小时数。一位数数值前面加一个 0。
H
24 小时格式的一位数或两位数小时数。
HH
24 小时格式的两位数小时数。一位数数值前面加一个 0。
m
一位数或两位数分钟值。
mm
两位数分钟值。一位数数值前面加一个 0。
M
一位数或两位数月份值。
MM
两位数月份值。一位数数值前面加一个 0。
MMM
三个字符的月份缩写。
MMMM
完整的月份名。
s
一位数或两位数秒数。
ss
两位数秒数。一位数数值前面加一个 0。
t
单字母 A.M./P.M. 缩写(A.M. 将显示为“A”)。
tt
两字母 A.M./P.M. 缩写(A.M. 将显示为“AM”)。
y
一位数的年份(2001 显示为“1”)。
yy
年份的最后两位数(2001 显示为“01”)。
yyyy
完整的年份(2001 显示为“2001”)。