为了更好地为加拿大客户提供服务,我们尝试本地化一些旧的经典ASP页面上显示的日期。我们已经开始使用SetLocale()vb脚本函数取得了一些成功 - 正确处理用户输入日期。
但是,我期望在ADODB.Recordset中返回一个日期以尊重页面的语言环境。请考虑以下代码:
SetLocale 4105
'''
' Get a list of Employees
SQL = "SELECT Firstname, Lastname, HireDate FROM Employee"
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open Application("ConnectionString")
Set cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = conn
cmd.CommandType = 1
cmd.CommandText = SQL
Set rst = Server.CreateObject("ADODB.Recordset")
rst.CursorLocation = 3
Set rst = cmd.Execute
将 HireDate 列写入页面时,它将呈现为MM / DD / YYYY(我们的服务器使用的格式)。
有几点需要注意:
在这种情况下,本地化来自SQL Server的日期值的正确方法是什么?
答案 0 :(得分:3)
我认为您可能仍需要使用FormatDateTime函数才能使其正常显示。
尝试
FormatDateTime(rst("HireDate").Value, vbShortDate)
答案 1 :(得分:1)
rst(“HireDate”)是一个Field
rst(“HireDate”)。值将是日期
rst(“HireDate”)。Value.ToString(),将在执行语句的机器的语言环境中返回日期作为字符串,几乎可以肯定机器IIS正在运行,其中可能是也可能不是该框sql server正在破坏。
查找GetLocale / SetLocale是一种方式,另一种方法是依赖客户端jaavscript将日期显示为字符串。