5

在.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/如果可以的话,它有一些详细信息指定一个偏移量,但我似乎无法弄清楚如何从指定的时区获取它(从 currentTimezone 它就像 一样简单myDate.getTimezoneOffset())。

再次在.Net中,我可以这样做:

TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("Atlantic Standard Time");
TimeSpan offset = tzi.GetUtcOffset( myDateTime);
4

1 回答 1

5

JavaScript 本身无法做到这一点。你需要一个图书馆。我在这里提供了几个不同库的列表。

还要认识到“大西洋标准时间”是 Microsoft 时区标识符。您需要使用等效的 IANA 时区,即“美国/哈利法克斯”。您可以在“时区数据库”下的时区标签 wiki中阅读更多内容。如果您需要从 Microsoft 标识符进行转换,您必须在您的 .NET 代码中使用 Noda Time 进行转换,正如我在此处描述的那样。

这是使用moment-timezone的示例:

(为了便于阅读,特意分成单独的语句)

var now = moment();
var atlantic = now.tz("America/Halifax");
var s = atlantic.format();
于 2013-10-21T16:40:16.947 回答