datetime – 将时间转换为UTC vbScript
我有以下功能,可以很好地将当前时间转换为UTC时间.
Function toUtc(byVal dDate) Dim oShell : Set oShell = CreateObject("WScript.Shell") toUtc = dateadd("n",oShell.RegRead("HKEY_LOCAL_MACHINESystemCurrentControlSetControlTimeZoneInformationActiveTimeBias"),cDate(dDate)) End Function 但是,我认为这不能充分处理将来或历史日期转换为UTC,因为该函数需要知道转换日期时服务器时区的偏移量,以及它是否是在夏令时期间与否. 我怎么能绕过这个? 我在IIS7.5的Windows服务器上使用vbScript / Classic ASP 为了澄清,这与格式化日期无关.它是关于从服务器时区转换为UTC历史日期的全部内容.在夏令时期间,如果我尝试转换标准时间内发生的日期时间,则偏移量将减少60分钟. 例如: 让我们说今天,2013-02-19(非夏令时),我想从2008年6月5日(在夏令时期间)将时间戳从PDT(我的服务器时区)转换为UTC.使用我函数中的方法将给出一个与正确值相差60分钟的值(因为CURRENT时间是PST(不是PDT),该历史日期的偏移量将不正确). 换句话说,输入日期的时区偏移可以是UTC-7或UTC-8,具体取决于是否在该特定日期观察到DST.我需要为输入日期计算正确的UTC日期,无论是否在当前日期观察到DST,我都需要使用该代码. 解决方法
这是我最终在@ AardVark71的建议下实施的解决方案.
我把它放在我的func.asp文件中: <script language="javascript" runat="server"> function toUtcString(d) { var dDate = new Date(d); return Math.round(dDate.getTime() / 1000); }; </script> 它输出一个时间戳值.然后从经典的asp代码中的任何地方,我都可以这样做: response.Write DateAdd("s",toUtcString(cDate("11/11/2012 06:25 PM")),"01/01/1970 00:00:00") 'expect 11/11/2012 10:25:00 PM gmt/utc time response.Write DateAdd("s",toUtcString(cDate("06/11/2012 06:25 PM")),"01/01/1970 00:00:00") 'expect 6/11/2012 9:25:00 PM gmt/utc time 这(我相信)很简单,它在DST中产生预期值和完全因子. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 从VS发布到Azure时无法更改目标运行时
- asp.net – 临时环境应该与现场环境相等多少?
- asp.net-mvc – 将Serverside MVC与Backbone.js结合使用
- ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)
- 部署ASP.Net MVC应用程序的最便宜的方法是什么?
- asp.net – 无法为自定义MembershipProvider创建Membership
- asp.net dropdownlist – 在db值之前添加空行
- Asp.net 中获取html控件的值的方法
- 如何/在哪里asp.net mvc处理解码和动作方法参数
- asp.net-mvc-3 – 在Entity Framework中使用数据库第一种方