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

Windows服务器
Win2K建立共享Internet的小型局域网
如何为Windows2000创建一个tftpservice
用NetShare清除默认共享隐患
2000下的xcopy可以复制文件的安全属性.
新补丁新烦恼--Win2KSP4八大热点问题
小心Win2K权限叠加—浅谈机房安全隐患
增强win2000自带的画笔
Windows2000Server安装经验谈
用宽带网来架设个人服务器
win2003详细系统安全设置
2003操作系统14招加速大法
Win2000系统无法打开网页的解决方法
Win2000中实现远程访问服务
Windows Server 2003 IIS 的日期格式问题
Windows Server2003防木马权限设置
windows 2003中搭建视频点播服务器
巧法实现硬盘启动
优化Windows服务器磁盘性能
Win 2003系统十例最新配置技巧
Win 2003的DNS服务器配置大法

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


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