当前位置: 首页 > 图文教程 > 服务器 > Windows服务器 > Windows Server 2003 IIS 的日期格式问题

Windows服务器
Windows Server 2003 R2 Beta 2将公测
Windows 2003组策略和安全模板的应用
Windows 2003 64位正式版抢先体验
微软发布WinServer2003 R2 Beta2
Windows Server 2003 安全配置实战演习
快速关闭Windows 2003的三种方法
windows 2003服务器防止海洋木马的安全设置
制作无盘Windows 2003之无忧Ghost文件
为Windows 2003加装视频压缩
安全配置向导为Win2003打造“铜墙铁壁”
用Win 2003 SP1向导功能打造安全服务器
在Win 2003系统中挖掘免费刻录软件
Windows 2003优化系列之系统服务的开关
发扬DIY精神 为Windows 2003移植系统还原
活学活用Win2003分区增容功能
轻松管理Win 2003的“远程桌面”
自动管理Windows 2003好用的“远程桌面”
活学活用Windows Server 2003分区增容功能
使用Web接口远程维护Win2003服务器
教你一招:Windows2003系统优化大有玄机

Windows服务器 中的 Windows Server 2003 IIS 的日期格式问题


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-02   浏览: 343 ::
收藏到网摘: n/a

今天我把一个用VS2005做的Web程序发布到了Windows Server 2003上。结果发现程序中的所有短日期格式都变成了27/12/2006这样的格式。而服务器上的区域语言选项中明明是2006-12-30这样的格式。

后来发现虚拟目录的“属性->ASP.Net->编辑配置...->应用程序"选项卡中的"全球化设置"中的"区域性"中默认是"af-ZA".我把它改为"zh-CN"后,再访问我发布的网站,发现日期格式已经变为"2006/12/27".但是它与服务器上的区域语言选项中明明是2006-12-30这样的格式还是不同的.

 

在服务器上 :控制面板--〉区域和语言选项--〉区域选项--〉自定义---〉日期---〉日期分隔符 下拉选项 即可选择

你不应该依赖服务器上的设置,要养成好的习惯,。
在你的程序李进行格式化
 DateTime a = DateTime.Now
a.ToString("yyyy-MM-dd")

方法是在页面的Page_Load()中,加入以下代码:
System.Globalization.CultureInfo myCI = new System.Globalization.CultureInfo("zh-CN", true);
myCI.DateTimeFormat.ShortDatePattern = "yyyy-M-d";
System.Threading.Thread.CurrentThread.CurrentCulture = myCI;

问题的原因是,CultureInfo.CurrentCulture 的UseUserOverride属性默认是false,表示要使用.Net的默认格式(yyyy/M/d),而不是用服务器上的区域选项中的设置(yyyy-M-d)。

所以只要用代码
System.Globalization.CultureInfo myCI = new System.Globalization.CultureInfo("zh-CN", true);
System.Threading.Thread.CurrentThread.CurrentCulture = myCI;
将UseUserOverride属性设为true就可以了。

不过在实践中不知为什么居然不好用。所以逼得我只好手动设置格式,代码也就变成了:
System.Globalization.CultureInfo myCI = new System.Globalization.CultureInfo("zh-CN", true);
myCI.DateTimeFormat.ShortDatePattern = "yyyy-M-d";
System.Threading.Thread.CurrentThread.CurrentCulture = myCI;