【问题标题】:Dealing with timezones in vbscript在 vbscript 中处理时区
【发布时间】:2019-05-05 09:22:54
【问题描述】:

我正在尝试使用 vbs 更改一些旧的 .asp 文件。我们的数据库将转换为以 UTC 存储日期,但在网页上它应该以“欧洲/赫尔辛基”时区显示日期和时间(

TimeZoneInfo.FindSystemTimeZoneById("FLE Standard Time")

在 C# 中)。如何使用 vbscript 将我从 db 查询(查询也在 .asp 文件中运行并将结果放入表中)转换为更正日期时间的 UTC 日期?

【问题讨论】:

  • @SalmanA 只要您知道时区偏移量,您就可以使用 DateAdd() 到 + - 从传递的日期时间值开始的小时数。
  • @Lankymart 这些是旧日期,由于我们有夏令时,添加的小时数并不总是相同。
  • 我确实在我的回答中指出了这一点,你如何锻炼应该应用 DST 和不应该应用什么取决于你,并且取决于你必须使用的信息。他们用 .Net 宠坏了你。

标签: vbscript asp-classic timezone


【解决方案1】:

只需使用 DateAdd() 偏移 UTC 日期即可。

Const EETOffset = -2 'EET offset from UTC is -2 hours
Dim dbDateValue  'Assumed value from DB
Dim newDate
'... DB process to populate dbDateValue
newDate = DateAdd("h", EETOffset, dbDateValue)

注意:这种方法的一个问题是您还必须根据年。当您考虑到某些地方不使用它并全年使用 EET 时,这也更加困难。
EET – Eastern European Time (Standard Time)

根据您使用的 RDMS,您甚至应该能够在日期到达页面之前作为初始查询的一部分对其进行操作。


有用的链接

【讨论】:

  • 所以没有简单的方法可以做到这一点(如果日期是夏季或冬季时间,则无需手动计算)仅使用 vbscript?
  • @Margo 我想也许System.TimeZoneInfo 可以用CreateObject 实例化,但它看起来不像.Net 将那个类暴露给COM 所以简而言之......不,没有。
猜你喜欢
  • 1970-01-01
  • 2023-03-15
  • 2010-09-25
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
相关资源
最近更新 更多