use*_*980 7 javascript timezone dst node.js
首先,我不是在寻找DST是否在当地生效.
我正在运行一个Node进程,其中包含具有关联时间戳的数据.我需要在指定的时区将这些时间戳转换为日/月/年,但我给出的只是时区的偏移量和DST偏移量.
我希望Date/Moment能够更好地适应时区.它们适用于UTC或本地时区,但似乎你需要破解它以获得其他东西.
有什么我想念的吗?假设我可以确定DST是否生效,这是否有效:
var d = new Date(ts + timezone_offset - local_offset);
d.getMonth();
d.getDate();
Run Code Online (Sandbox Code Playgroud)
其中timezone_offset是时区的偏移量(标准偏移量或dst值)?
我如何确定DST是否有效?
我有什么遗漏的吗?假设我可以确定 DST 是否有效,那么
timezone_offset请求的时区偏移量是否有效?
尝试始终使用 UTC 方法来获取日期属性。这样你的(服务器)本地时区就不会影响任何计算:
var d = new Date(ts + timezone_offset);
d.getUTCMonth();
d.getUTCDate();
Run Code Online (Sandbox Code Playgroud)
我如何确定 DST 是否生效?
这很复杂。根据地区的不同,有许多不同的算法来确定 DST 的开始和结束 -例如,请查看http://en.wikipedia.org/wiki/Daylight_ saving_time_by_country。
我不知道是否有任何库已经对这些进行了编码,或者甚至可能联系时区数据库以获取正确的信息。最后的手段是询问用户本人有关时区的详细信息。