是否有一个简单的时间从给定时间获得时区?

时间:2014-03-04 14:33:39

标签: javascript date time timezone

我需要从一个时间获得时区,日期并不重要,但夏令时是。

类似的东西:

timezone = function("15:00");

有一种简单的方法吗?

4 个答案:

答案 0 :(得分:1)

我认为你不能从时间上获得时区,但你可以从Date.prototype.getTimezoneOffset()得到一些帮助

  

getTimezoneOffset()方法返回UTC的时区偏移量,   在几分钟内,对于当前的区域设置。

示例:

var x = new Date();
var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;

答案 1 :(得分:1)

不,当然不是。考虑一下,你将15:00传递给那个函数,可以假设它是3PM。但在什么时区是下午3点?没办法知道。就像我说的那样是四分之一,而不是说它到达季度的时间是什么时候。

在JS中获取 时区的唯一方法是使用the Date object,但这只显示运行代码的机器的时区,没有关于TZ的信息。 “创建”您正在处理的时间。

另请注意,夏令时不是一种全球现象,quite the contrary。 AFAIKT,没有一个DST始终存在的时区......

答案 2 :(得分:1)

为了获取TimeZone信息,您需要的不仅仅是日期(和偏移)。你需要一个位置。

Javascript不知道它所在的位置,但它确实知道UTC的当前偏移量。这与时区不同。夏令时问题严重影响了这一关键差异。

在处理知道其时区并将日期报告为特定时区的服务器应用程序时,这会产生问题。

在这方面,我的经验法则相当简单。

始终使用长或长(64位数字)来存储,传递和处理日期时间或间隔,仅在与人交互时转换为日期,日历或日期时间对象。

答案 3 :(得分:0)

获得日期对象后,例如使用new Date(),您可以使用.getTimezoneOffset()获取日期对象与UTC之间的分钟数,这是您可以使用的时区信息。