时区的相关知识

在项目开发的时候,老是会遇到一些时间, 但是呢不清楚他们之间是什么关系, 今天来整理一下这些知识

ECMAScript基于ISO 8601扩展格式的简化为日期时间定义字符串交换格式。格式如下:

  YYYY-MM-DDTHH:mm:ss.sssZ

 其中: T: T 字面上出现在字符串中,表示时间元素的开头。

 Z:   

  • 为Z时 表示 该时间为格林威治时
  • 或“ +”或“ ”后跟时间表达式的时区偏移量 HH:mm

  GMT: 

为格林威治标准时间(Greenwich Mean Time,GMT),是指位于英国伦敦郊区的皇家格林尼治天文台当地的标准时间,因为本初子午线被定义为通过那里的经线。格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间。但由于地球在它的椭圆轨道里的运动速度不均匀,这个时刻可能与实际的太阳时有误差,最大误差达16分钟。原因在于地球每天的自转是有些不规则的,而且正在缓慢减速,因此格林尼治时间基于天文观测本身的缺陷,已经不再被作为标准时间使用。现在的标准时间,是由原子钟报时的协调世界时(UTC)来决定。
 

  CST:

  • 中部标准时区(北美洲),Central Standard Time,UTC-6:00
  • 澳洲中部时间,Central Standard Time,UTC+9:30
  • 北京时间,China Standard Time,UTC+8:00
  • 古巴标准时间,Cuba Standard Time,UTC-4:00

示例:Mon Dec 17 2018 11:16:25 GMT+0800 (CST)

  UTC: 

协调世界时(英语:Coordinated Universal Time,法语:Temps Universel Coordonné,简称UTC)是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治标准时间。对于大多数用途来说,UTC时间被认为能与GMT时间互换,但GMT时间已不再被科学界所确定。

UTC偏移量:

UTC偏移量是协调世界时(UTC)和特定地点的日期与时间差异,其单位为分钟。它通常以 ±[hh]:[mm]、±[hh][mm]、或 ±[hh]的格式显示。所以,如果被描述的时间比UTC早一小时(例如柏林的冬季时间),UTC的偏移量将是”+01:00”、”+0100”、或简单显示为”+01”。
 

计算方法: new Date().getTimezoneOffset()    (单位: 分钟)

注意, 这里表示的是当前时区与UTC 的偏移量,不是时间对象.

 

时间换算: 

本地时间 = 格林威治时间 - 时差

格林威治时间 = 本地时间 + 时差

例子: 已知本地时间,换算其他时区的时间

 本地时间 + 本地时间时差 = 目标时区时间 + 目标时区的时间差

     东区时间差为负数, 西区时间差为正数

var timezone = -8                                                            //目标时区时间,东八区
var offset_GMT = new Date().getTimezoneOffset()       // 本地时间和格林威治的时间差,单位为分钟
var nowDate = new Date().getTime()                             // 本地时间距 1970 年 1 月 1 日午夜(GMT 时间)之间的毫秒数
var targetDate = new Date(nowDate + offset_GMT * 60 * 1000 -  timezone * 60 * 60 * 1000)
console.log("东8区现在是:" + targetDate);
 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值