C# ToShortDateString() ToString() 设置日期格式的区别

时间:2024-09-08 19:04:14

在C#中,ToShortDateString()是用于显示短日期格式的方法,如果使用下面的语句:

Label1.Text = DateTime.Now.ToShortDateString();

那么,在Label1中会显示什么样的短日期格式呢?

答案是:不确定。

可能是:2013-07-26

也可能是:2013/07/26

也可能是:2013.07.26

等等等等,虽然许多文章中认为应该是“2013-07-26”,实际上,ToShortDateString()方法所显示出的短日期字符串不是由它本身所能控制的,实际它是由所处区域及人为设置所影响的。

进入“控制面板”,打开“区域和语言”,在“格式”签下可以看到短日期的设置方式,比如上述ToShortDateString()所产生的三种可能的输入分别对应了:“yyyy-MM-dd”、“yyyy/MM/dd”、“yyyy.MM.dd”三种设置的短日期格式。

因此,电脑所处的区域不同,或者电脑用户的个人偏好不同,而设置了不同的短日期格式,那么在C#开发的Windows应用或者Web应用,短日期就会以不同的格式显示。

但在设计开发中,为了保持界面的统一性,往往希望短日期格式在任何情况下都是固定不变的,不使其受到用户对短日期格式设置的影响。这时候,需要使用ToString的方式,强行指定日期的显示格式,而不提取客户机上用户设定的格式。

具体使用方法是:

Label1.Text = DateTime.Now.ToString("yyyy-MM-dd");

这样做的结果,无论客户机是什么样的短日期格式设置,可以确定地说,这个日期的显示格式必然是:

“2013-07-26”

同样地,如果要在各种电脑上都显示出统一的长日期、时间等信息,都可以使用ToString方法。

总结:如果强调统一的界面,可以使用ToString的办法指定不变的日期或时间格式;如果考虑应用要灵活适应不同区域(比如可以全球访问的网站)的用户,则使用ToShortDateString办法, 这个函数的日期格式取决于服务器的日期格式设置,是不确定的,有可能是纯字母的日期格式,所以为了程序保持日期格式统一,最好不使用这个函数。