DateTime.Now.ToString("yyyy/MM/dd") 输出的结果是 2006-03-16(转)

参考:http://blog.csdn.net/meizz/article/details/626932 

今天我在使用 DateTime.Now.ToString("yyyy/MM/dd") 输出的结果是 2006-03-16 而不是我想要的 2006/03/16,都快把我郁闷的不行了。后来用了一个方法解决:DateTime.Now.ToString("yyyy/MM/dd").Replace("-", "/"),这种方法虽然可以解决问题(后面证明这个方法并不太管用),但感觉总是很别扭,后来请教了韩磊老大,恰巧他也遇到过同样的问题,原因就是在 ToString() 的时候这个方法是直接以系统的日期格式设置输出的,所以这里会出现这种莫名基妙的错误,解决的办法就是启用 DateTime.ToString() 的第二个参数,忽略系统时间格式设置:

DateTime.Now.ToString("yyyy/MM/dd", System.Globalization.DateTimeFormatInfo.InvariantInfo);

 

另外会碰到的问题是:在自己的电脑操作系统Win7上DateTime.Now.ToString("yyyy/MM/dd")的输出是2006/03/16,但是到时Server 2008上就变成了2006-03-16,解决办法有三种:

1. DateTime.Now.ToString("yyyy/MM/dd", System.Globalization.DateTimeFormatInfo.InvariantInfo);

2. DateTime.Now.ToString("yyyy-MM-dd");

3.string folder = DateTime.Now.ToString("yyyy\\/MM\\/dd");到哪个平台都一样,不会变"2010-7-23".

posted @ 2015-01-28 10:28  邹邹  Views(131)  Comments(0)    收藏  举报