首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >节点的Date.parse支持哪些时区别名?

节点的Date.parse支持哪些时区别名?
EN

Stack Overflow用户
提问于 2015-04-09 12:24:16
回答 2查看 155关注 0票数 0

虽然节点的Date.parse处理数字时区(如Date.parse('2015-01-01 00:00 UTC-7') ),但它也处理一些别名(如太平洋标准时间的PST )。完整的名单是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-09 16:04:59

它支持与RFC822兼容所需的区域(由RFC2822RFC5322取代)

代码语言:javascript
复制
 zone        =  "UT"  / "GMT"                ; Universal Time
                                             ; North American : UT
             /  "EST" / "EDT"                ;  Eastern:  - 5/ - 4
             /  "CST" / "CDT"                ;  Central:  - 6/ - 5
             /  "MST" / "MDT"                ;  Mountain: - 7/ - 6
             /  "PST" / "PDT"                ;  Pacific:  - 8/ - 7

它还支持"Z",因为它是ISO8601的一部分(由ES5.1§15.9.1.15授权)和"UTC",因为它是一个非常普遍的约定(尽管很重要,但不是在规范中!)

请注意,RFC822还描述了其他军事时区缩写,即通过Z以字母表示的A,但只支持Z。其他的已经从大多数实现中被废弃了。

还要注意,时区缩写在一般情况下是不可靠的。具体来说,尽管"CST"在这里被定义为UTC-6,但它可能是世界上有着相同三个字母缩写的5个不同时区之一。见维基百科上的这个列表

票数 1
EN

Stack Overflow用户

发布于 2015-04-09 12:27:00

我不知道它是在哪里定义的,但是在三个字母的ASCII名称空间中进行了详尽的搜索:

代码语言:javascript
复制
alphabet = []
a = 'A'
while a <= 'Z'
  alphabet.push a
  a = String.fromCharCode a.charCodeAt() + 1

months = 'JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC'.split ','
tzs = {}

for a in alphabet
  for b in alphabet
    for c in alphabet
      tz = a + b + c
      continue  if tz in months
      try
        t = Date.parse '2015-01-01 00:00:00 ' + tz
        tzs[tz] = (new Date t).toISOString()
        console.log tz, tzs[tz]

...suggests只是几个美国的,UTC/GMT:

代码语言:javascript
复制
CDT 2015-01-01T05:00:00.000Z
CST 2015-01-01T06:00:00.000Z
EDT 2015-01-01T04:00:00.000Z
EST 2015-01-01T05:00:00.000Z
GMT 2015-01-01T00:00:00.000Z
MDT 2015-01-01T06:00:00.000Z
MST 2015-01-01T07:00:00.000Z
PDT 2015-01-01T07:00:00.000Z
PST 2015-01-01T08:00:00.000Z
UTC 2015-01-01T00:00:00.000Z
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29538411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档