下面是我的ASP(不是ASP.NET)代码:
<%
days = day(now)
if len(days) <> 2 then
days = "0"&days
END IF
months = month(now)
if len(months) <> 2 then
months ="0"&months
end if
min = dateadd("n",2,now)
hr = dateadd("h",-5,now)
Hrs = hour(hr)
if len(Hrs) <> 2 then
Hrs ="0"&Hrs
end if
Mins = minute(min)
if len(Mins) <> 2 then
Mins ="0"&Mins
end if
Secs = second(now)
if len(Secs) <> 2 then
Secs ="0"&Secs
end if
datess = year(now)&"-"&months&"-"&days&"T"&Hrs&":"&Mins&":"&Secs
response.write(datess) %>
输出是服务器时间(在英国托管的服务器)。现在我想将其转换为IST(印度标准时间)。我怎么能在Classic ASP中做到这一点?
答案 0 :(得分:1)
ASP VBScript不了解时区的概念,只是当前的服务器时间。 JScript ASP确实如此,幸运的是,您可以在ASP中混合和匹配脚本语言。
这将使用JScript将UTC日期和时间转换为VBScript可以理解和操作的格式:
<script language="javascript" runat="server">
var od = new Date();
var nd = od;
var s = nd.getUTCDate() + "/";
s += (nd.getUTCMonth() + 1) + "/";
s += nd.getUTCFullYear() + " ";
s += (nd.getUTCHours()) + ":";
s += nd.getUTCMinutes() + ":";
s += nd.getUTCSeconds();
datUTC = s;
</script>
<%
Response.Write(FormatDateTime(datUTC, 3))
%>
一旦有了UTC,那么您可以应用自己的规则将其转换为可预测的IST。
答案 1 :(得分:0)
您可以在当前的英国时间添加正确的小时数(GMT + 5:30)。
DateAdd("n",330,NOW()) --adds 5 1/2 hours to current time
你需要在一个功能中做到这一点,这个功能还允许印度标准时间不像英国那样(在英国夏令时期间)运行夏令时。所以对于一年中的某些部分,你只需要增加4个半小时。
示例功能:
<%
offset = 330 '5 1/2 hours in minutes
' tell us what date you want
currentUkDateTime = NOW()
' find first Sunday in April
for i = 1 to 7
if weekday("4/" & i & "/" & year(d))=1 then
startDST = cdate("4/" & i & "/" & year(d))
end if
next
' find last Sunday in October
for i = 31 to 25 step -1
if weekday("10/" & i & "/" & year(d))=1 then
endDST = cdate("10/" & i & "/" & year(d))
end if
next
' subtract hour from offset if within DST
if cdate(od) >= startDST and cdate(od) < endDST then
offset = offset - 1
end if
currentISTDateTime = dateadd("n", offset, currentUkDateTime)
Response.Write("Current = " & currentUkDateTime & "<Br>UTC = " & currentISTDateTime )
%>
(在classicasp.aspfaq.com的帮助下)
答案 2 :(得分:0)
在ASP中你有一个名为LOCALE的东西,请检查: http://support.microsoft.com/kb/229690
然而......确定你想要走那条路,我去检查你是否满意: - 货币 - 约会时间 - 并且最后但是没有租用小数分隔符....在某些LOCALES中,分隔符是逗号(而不是美国,它是a。)你可能最终得到SELECT * FROM article WHERE price&gt; 3,14 - &gt;提供参数的大错误(LOCALE可以将PI(3.14)改为3,14这可以避免,但......经典ASP中的国际化非常“简单”......