1

以下は私の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(インド標準時)に変換したいと思います。クラシックASPでそれを行うにはどうすればよいですか?

4

3 に答える 3

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 に変換できます。

于 2012-07-05T12:15:35.497 に答える
0

現在の英国時間に正しい時間数 (GMT + 5:30) を追加できます。

DateAdd("n",330,NOW()) --adds 5 1/2 hours to current time

インド標準時が英国と同じように夏時間を運用していないという事実も考慮した関数内でそれを行う必要があります (英国の夏時間中)。したがって、1 年の特定の時期については、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の助けを借りて)

于 2012-07-05T09:23:06.137 に答える
0

ASP には LOCALE と呼ばれるものがあります。これを確認してください: http://support.microsoft.com/kb/229690

ただし...そのルートに行きたいことを確認してください。満足しているかどうかを確認します。である US とは対照的です。) SELECT * FROM article WHERE price > 3,14 -> 提供されたパラメーターに大きなエラーが発生する可能性があります (LOCALE は PI (3.14) を 3,14 に変更する可能性があります。これは回避できますが、. .. 従来の ASP での国際化は非常に「単純」です...

于 2012-07-06T19:37:27.193 に答える