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

Windows服务器
自动实现Windows 2000系统补丁的快速安装
快速恢复Windows 2000/XP遗忘的管理员密码
Windows 2000/XP操作系统中超强命令syskey
环境变量应用:多系统共享程序
如何配置windows 2003的DNS服务器
Win 2003远程管理的实现
Win 2003轻松识别外来设备
Win 2003实现网络共享还原
体验Win 2003共享“还原”技术
用Windows 2003实现网络共享还原
激活windows 2003常用服务
windows 2003常见故障诊断
轻松提高windows 2003的运行速度
windows 2003中IE安全区域的设置技巧
改变windows 2003登录方式
windows 2003中给用户文件指派登录脚本
在windows 2003创建映像之前使用Sysprep
怎样在windows 2003下使用USB便携存储器
NT升级至windows 2003如何应用注册表和文件系统
windows 2003中配置PPTP VPN客户端筛选器

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-02   浏览: 337 ::
收藏到网摘: 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;