【发布时间】: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 的环境吗?