在.Net中,我可以使用以下内容来确定指定时区的时间:
var targetDate = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, "Atlantic Standard Time");
我一直在试图找出一种在Javascript中做到这一点的方法,但到目前为止还没有运气。我能够找到以下内容:http://www.techrepublic.com/article/convert-the-local-time-to-another-time-zone-with-this-javascript/其中包含一些详细信息,如果我可以指定偏移量,但我似乎无法弄清楚如何从指定的时区获取它(从当前时区它就像myDate.getTimezoneOffset()
一样简单)。
同样在.Net中,我可以通过以下方式执行此操作:
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("Atlantic Standard Time");
TimeSpan offset = tzi.GetUtcOffset( myDateTime);
JavaScript 本身无法做到这一点。 你需要一个图书馆。 我在这里提供了几个不同库的列表。
还要认识到"大西洋标准时间"是Microsoft时区标识符。 您需要使用等效的 IANA 时区,即"美国/哈利法克斯"。 您可以在时区标签 wiki 的"时区数据库"下阅读更多信息。 如果需要从Microsoft标识符进行转换,则必须使用 Noda Time 在 .NET 代码中执行此操作,如此处所述。
以下是使用时刻时区的示例:
(为了便于阅读,故意拆分为单独的语句)
var now = moment();
var atlantic = now.tz("America/Halifax");
var s = atlantic.format();