我需要从一个时间获得时区,日期并不重要,但夏令时是。
类似的东西:
timezone = function("15:00");
有一种简单的方法吗?
答案 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之间的分钟数,这是您可以使用的时区信息。