我工作的业务是在全新安装的Windows Server 2016上运行ASP Classic网站(我知道..)。在2012服务器上一切都很好,但我们的主机告诉我们发生了灾难性的硬盘故障,他们基本上不得不擦除所有内容并给我们一个新的操作系统,所以我一直试图重建整个事情。
一切正常,但ASP Classic网页中的日期默认为美国格式,没有前导零 - 例如,如果我从SQL Server数据库中检索YYYYMMDD日期,它将正确识别月/日但是默认为以美国格式显示。如果我使用我们的代码重新格式化month(dateVar)
和day(dateVar)
,一切仍然有用
以下是我尝试修复的内容,主要是我在堆栈溢出时发现的内容:
HKEY_USERS/HKEY_LOCAL_USERS -> .DEFAULT -> Control Panel -> International
LCID=2057
以在一个ASP页面中进行测试,并在Global.asa文件中进行测试无效昨晚11点,一切都很美好。今天早上我醒来发现电子邮件说日期格式再次出错。据我所知,服务器一直都在运行
我已经检查并重新检查了我已经更改的所有内容,而且这完全取决于我是如何离开的......但是日期格式已经从(例如)21/01/2018变为2018年1月21日
有什么我想念的吗?我对Windows Server不熟悉
答案 0 :(得分:0)
解决方案,感谢John。
我在网站的根目录中创建了一个Global.asa
文件并添加了:
<script language="vbscript" runat="server">
sub Session_OnStart
Session.LCID="2057" 'UK
end sub
</script>
然后解决了问题 - 可以使用ASP Response.write getLocale
我有两个网站作为IIS中的应用程序添加,我不得不将Global.asa
复制到他们的文件夹中
&lt;%@ LCID =“2057”%&gt;一直为我工作。我认为你把它放在页面开头的声明中
如果使用处理指令(带有@符号的位)太费力,您可以尝试将其设置为会话变量。 Session.LCID = 2057。 Global.asa将是显而易见的地方,但如果你有一个包含每个页面使用它的文件,那么它也应该在那里工作