【问题标题】:VBScript: convert date/time from a named time zone to UTCVBScript:将日期/时间从指定时区转换为 UTC
【发布时间】:2017-03-17 05:37:46
【问题描述】:

首先,不要混淆;这要求将当前时区转换为UTC。一点也不。

我需要将 按名称提供的时区(例如“太平洋标准时间”)转换为 UTC。

转换必须考虑到所提供日期的夏令时偏移量。

例如,如果我输入太平洋标准时间 2016 年 3 月 10 日下午 6:00,它必须返回 2016 年 4 月 10 日凌晨 1:00,因为在该日期时区偏移为 -7 小时。

我已经在互联网上上下搜索过,但找不到任何东西。如果这是一种不同的语言,那将不是问题,但 VBScript 似乎相当有限。

如果可能,我想避免使用第 3 方库并坚持使用标准的 MS 提供的对象。

请指教。

【问题讨论】:

  • 恐怕这是一个手动过程,VBScript 不支持时区。所以你必须使用内置的日期/时间函数自己实现一些东西。 store the offsets in a database 可能会使用时区表并使用它来供电。
  • 我还建议阅读这个答案 - A: Daylight saving time and time zone best practices - 值得记住的有用引用 - “不要将“时区”(例如 America/New_York)与“时区偏移”混淆",比如 -05:00。它们是两个不同的东西。".在timezone 标签info page 上还有很多有用的信息。
  • VBScript 是一种语言,但它用于许多不同的环境,这会影响您的可用选项。例如,如果你可以shell执行,你可以play with some embedded powershell。如果您在经典的 ASP 环境中,您可能会 P/Invoke COM 对象等。其他地方的选项可能会有所不同。您能告诉我们更多关于您运行 VBScript 的环境吗?

标签: vbscript timezone


【解决方案1】:

vbscript 很难。您可以通过解析TZutil.exe 的输出来获取时区信息(标准偏移量),但这不会为您提供 DST-Bias 或 DST 在特定日期生效的信息。您可以在 vbscript 中进行 wmi 查询,这将返回该信息,但仅适用于当前 pc 的活动时区。这些信息位于 Windows 中,但我不知道如何通过 vbscript 获取它们。

另一方面,Powershell 会公开大部分此类数据。我不知道 DST 以Pacific Standard Time 结束的日期,但 Powershel/.Net 知道。查看在 PoSh 控制台中输入的这些行:

> $PacificDateTime = Get-Date "2016/11/05 11:00:00"
> [TimeZoneInfo]::ConvertTimeBySystemTimeZoneId(($PacificDateTime),'Pacific Standard Time','UTC')
Freitag, 5. November 2016 18:00:00

> $PacificDateTime = Get-Date "2016/11/15 11:00:00"
> [TimeZoneInfo]::ConvertTimeBySystemTimeZoneId(($PacificDateTime),'Pacific Standard Time','UTC')
Dienstag, 15. November 2016 19:00:00

第一个日期的时差是-7h,而通常是-8h,所以夏令时生效。提前 10 天的第二个日期有 -8 小时的差异,所以我猜切换是同时进行的。这可以很容易地转换为函数。不过我会留给你一些工作。

【讨论】:

    【解决方案2】:

    嗯,最终 VBScript 没有提供所需的功能。所以我必须在 Web API 上实现它并从我的本地程序中调用它。我使用了TimeZoneInfo.ConvertTimeToUtc(),这正是我需要的。然后我这样称呼它:https://stackoverflow.com/a/22328840/442512

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-03
      • 1970-01-01
      • 2013-10-23
      • 2016-09-28
      • 1970-01-01
      • 1970-01-01
      • 2016-06-17
      • 2022-12-17
      相关资源
      最近更新 更多