Javascript等同于.Net TimeZoneInfo.ConvertTimeBySystemTimeZoneId
在.Net中,我可以使用以下公式计算指定时区中的时间:Javascript等同于.Net TimeZoneInfo.ConvertTimeBySystemTimeZoneId,javascript,datetime,timezone,Javascript,Datetime,Timezone,在.Net中,我可以使用以下公式计算指定时区中的时间: var targetDate = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, "Atlantic Standard Time"); 我一直在试图找到一种用Javascript实现这一点的方法,但到目前为止运气不佳。我能够找到以下内容:如果我可以指定偏移量,那么它有一些详细信息,但是我似乎不知道如何从指定的时区获取偏移量(从当前时区获取偏移量就像myDate.get
var targetDate = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, "Atlantic Standard Time");
我一直在试图找到一种用Javascript实现这一点的方法,但到目前为止运气不佳。我能够找到以下内容:如果我可以指定偏移量,那么它有一些详细信息,但是我似乎不知道如何从指定的时区获取偏移量(从当前时区获取偏移量就像myDate.getTimezoneOffset()
一样简单)
同样,在.Net中,我可以使用:
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("Atlantic Standard Time");
TimeSpan offset = tzi.GetUtcOffset( myDateTime);
JavaScript不能以本机方式实现这一点。你需要一个图书馆。我为此提供了几个不同库的列表 还要认识到“大西洋标准时间”是Microsoft时区标识符。您需要使用等效的IANA时区,即“America/Halifax”。您可以在“时区数据库”下的中阅读更多内容。如果需要从Microsoft标识符转换,则必须在.NET代码中使用Noda Time进行转换,如我所述 下面是一个使用的示例: (为了可读性,有意将其拆分为单独的语句)
var now = moment();
var atlantic = now.tz("America/Halifax");
var s = atlantic.format();