关于日期显示格式字符串的一点理解
今天有网友在q群上贴了如下一段代码:
string s = Calendar1.TodaysDate.ToString("d");
想得到"MM/dd/yyyy"的显示方式,可是总是显示成"04-01-2006",而不是想要的"04/01/2006"。
一开始我也想当然的认为"MM/dd/yyyy" (自定义格式字符串) 或者用"d"
(标准格式字符串)来完成,但是经过实验,发现总是显示"04-01-2006"。后来查了帮助,对这个问题有了下面的一些认识:
1、标准格式字符串的显示是与程序运行机器上的本地区域有关的,即与CultrueInfo相关。比如你的机器上的本地区域设置里,设置日期之间的间隔符是"-",那么你通过上述代码显示的总是"-",除非你修改了本地区域的设置。
2、上述代码默认的美国英语的显示方式是"04/01/2006",中文的显示方式是"04-01-2006",德语的显示方式是"04.01.2006"。
3、如果不通过修改本地区域的设置,而想实现"04/01/2006"的显示方式,则应该使用自定义格式字符串,上面的代码可以写成下面这样:
string s = Calendar1.TodaysDate.ToString("MM'/'dd'/'yyyy");
其中两个单引号括着的是任意字符串,在显示时都会直接显示。
呵呵,上述理解还比较肤浅。