要创建 UTC 日期对象,我们会这样写
new Date(Date.UTC(2012,02,30));
如果没有 Date.UTC,它会采用 locale
并创建 Date
对象。如果我必须为在世界某个地方运行程序的 CET
创建一个 Date 对象,我会怎么做?
最佳答案
您不会在任何特定时区“创建”JavaScript Date
对象。 JavaScript Date
对象始终以自纪元以来的毫秒 UTC 值为基础。它们具有应用本地时区偏移和规则的方法(getHours
而不是 getUTCHours
),但仅适用于本地时区。您无法设置 Date
对象用于其“本地”方法的时区。
您对 Date.UTC
所做的操作(正确的是,02
上的前导 0
除外)只是用以下命令初始化对象UTC 中该日期/时间(3 月 30 日午夜)以来的相应毫秒值,而 new Date(2012, 2, 30)
会将其解释为 3 月 30 日午夜本地时间。除了初始化的日期时间之外,Date
对象中没有差异。
如果您需要本地以外的时区,您所能做的就是使用 Date
函数的 UTC 版本,并为您想要使用的时区应用您自己的偏移量和规则,即不平凡的。 (偏移量是微不足道的;规则往往不是这样。)
如果你去寻找,你可以找到为你处理时区的 Node 模块。刚才快速搜索“Node 时区”给了我 timezone
作为第一击。它还为我提供了 this SO question 的链接, this SO question ,和this list of timezone modules for Node .
关于javascript - 创建具有 CET 时区的 Date 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20867562/