C# WinForm中DateTimePicker控件的Text属性和Value属性

在WinForm中经常会用到DateTimePicker这个控件,用这个控件获取时间会使用到Text属性或者Value属性。

关于这两个属性,还是存在着一些的不同,在这里简单的测试和总结一下。


首先看一下默认状态下的DateTimePicker控件

就是由含年、月、日三个值拼成的一个字符串表示一个日期的值。



1.设置DateTimePicker控件显示的格式

这个控件有一个CustomFormat属性,这个属性可以用来控制控件值显示的日期格式。

在设置这个属性之前,需要将Format属性设置为Custom,表示使用自定义的格式。

CustomFormat的值有以下几种:

(1)不设置任何值:使用默认的显示格式,就是你电脑右下角时间的格式(不包含时分秒)

           

(2)使用自定义的值:这里的这个值是可以任意写的。。。。(不过瞎写没法获得时间)

比如:aaaaa

显示的就是


这里设置格式的方法可以说是匹配特定字符。 以下这些字符是具有特殊含义的字符:y、M、d、h、H、m、s(其他的暂时没有发现)。


y:代表年。

使用yyyy设置后会在控件中显示对应的年份。

  

(另外还可以y、yy、yyy这三种会有特殊的显示,不过我也没太弄明白显示的规律,都是由年份相关的值组成的一串字符,一般情况也没啥用)


M:代表月。

MM:代表由两个数字符号组成的月份 ,如1月显示 01,12月显示12。

M:也是代表月,但是这里小于10月均只显示1位,没有前置的0,其余的正常显示。例如:1月显示1,10显示10。


d:代表天或者星期几

dd:代表由两个数字符号组成的天 ,例如:1则显示 01,12显示12。

d: 一位数只显示一个值,没有前置的0,其余正常显示。1显示1,10显示10。

ddd:代表周几,显示是这样的

dddd:这个代表的是星期几,显示式这个样子的

(微软考虑的真周到啊。。。。。)

这里要说一下超过4个以上的d,比如ddddddddddddd显示的依然是星期几,有没有上限不知道。那么如果要既显示日期有显示周几呢?很简单加上一个非d的字符放两个中间就行了。比如dd-dddd 显示的就是


h/H:都是代表小时,这里使用h是12时制,H是24小时制。(控件会对你输入的值作处理的,比如你使用了h,那么超过12的值会自动转换)

hh/HH:是两个字符组成小时,h/H是一个字符,和上边的M和d的规则是一样的。


m:代表分钟。m和mm的规则和区别和上边一致。

s:代表秒。s和ss的规则和区别也和上边一致。


目前发现的特殊字符就上边这些,使用这些字符的组合基本就可以完成所有日期的显示格式了,比如显示年月日时分秒 那么格式为:yyyy-MM-dd HH:mm:ss 对应显示的就是 


2.获取控件设置日期的两个方法及其区别

一般来说获取控件的日期(值)有两种方法,一种是使用Text属性,另一种是使用Value属性。这两个属性都可以做到,但是他们还是有一定区别的,简单的说一下。

1.首先是Text属性,它是获取或设置与当前控件关联的文本。这个意思就是DateTimePicker上显示的是什么,你获取到的就是什么。比如你显示的是a,那么Text属性的值就是a。而且Text属性使用ToString()这个方法的时候是不能传递表达格式的字符串做参数。所以想获得想要的时间格式就需要使用CustomForma这个属性设置想要的格式。

控件显示:     使用Text属性获得的:C# WinForm中DateTimePicker控件的Text属性和Value属性_第1张图片


2.使用Value属性。它是获取或设置分配给控件的日期/时间值。这个值与设置的CustomForma属性的值没有任何关系,无论你设置什么格式,他获取的值就是一个固定格式。这个格式与你电脑设置的日期时间格式相同。
控件显示:      使用Value属性获得的:C# WinForm中DateTimePicker控件的Text属性和Value属性_第2张图片

但是好处是这里在Value后的ToString()方法可以传递表达格式的字符串做参数。

比如:dateTimePicker1.Value.ToString("yyyy-MM-dd"),这个格式参数的字符的含义和上边的是一致的。


你可能感兴趣的:(编程学习,C#基础)