在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办法, 这个函数的日期格式取决于服务器的日期格式设置,是不确定的,有可能是纯字母的日期格式,所以为了程序保持日期格式统一,最好不使用这个函数。