Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript等同于.Net TimeZoneInfo.ConvertTimeBySystemTimeZoneId_Javascript_Datetime_Timezone - Fatal编程技术网

Javascript等同于.Net TimeZoneInfo.ConvertTimeBySystemTimeZoneId

Javascript等同于.Net TimeZoneInfo.ConvertTimeBySystemTimeZoneId,javascript,datetime,timezone,Javascript,Datetime,Timezone,在.Net中,我可以使用以下公式计算指定时区中的时间: var targetDate = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, "Atlantic Standard Time"); 我一直在试图找到一种用Javascript实现这一点的方法,但到目前为止运气不佳。我能够找到以下内容:如果我可以指定偏移量,那么它有一些详细信息,但是我似乎不知道如何从指定的时区获取偏移量(从当前时区获取偏移量就像myDate.get

在.Net中,我可以使用以下公式计算指定时区中的时间:

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();