UTC世界标准时间、GMT格林尼治标准时间、中国标准时间北京时间

遇到的现象

  • let newObj = JSON.parse(JSON.stringify(obj)),假设对象obj有属性time

    • 如果time的值是new Date(), 则newObj得到的拷贝后的数据属性time时间与当前北京时间会差8小时。
    • 如果time的值是new Date().getTime(); //获取当前毫秒时间戳, 则newObj得到的拷贝后的数据是没有问题的。
  • 时间戳是什么?

    • 时间戳是指格林威治时间1970年01月01日00时00分00秒 (北京时间1970年01月01日08时00分00秒)起到现在的总秒数。是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。
  • 看一个例子:

    console.log(new Date());//北京时间 中国标准时间
    console.log(JSON.stringify(new Date())); //UTC时间
    console.log(JSON.parse(JSON.stringify(new Date()))); //UTC时间
    console.log(new Date(JSON.parse(JSON.stringify(new Date()))));//北京时间 中国标准时间
    console.log(new Date(JSON.parse(JSON.stringify(new Date()))).toLocaleString());//北京时间 中国标准时间
    
    console.log(new Date().getTime());//时间戳
    console.log(JSON.stringify(new Date().getTime()));//时间戳
    console.log(JSON.parse(JSON.stringify(new Date().getTime())));//时间戳
    console.log(new Date(JSON.parse(JSON.stringify(new Date().getTime()))));//北京时间 中国标准时间
    console.log(new Date(JSON.parse(JSON.stringify(new Date().getTime()))).toLocaleString());//北京时间 中国标准时间
    

    浏览器控制台可以尝试输出以上内容,观察现象带着疑问看看下面几个概念!

new Date()

返回值

  • 返回类型为国标时间
  • 无参数时可以直接返回输出时的时间
  • 有参数时则返回对应时间的国标时间

内置方法

Date - w3school

方法描述
new Date()返回Sat Feb 21 2023 20:26:12 GMT+0800 (中国标准时间)
getFullYear()获取四位的年(yyyy)
getMonth()获取月(0-11)
getDay()以数值获取周名(0-6)
getDate()以数值返回天(1-31)
getHours()获取小时(0-23)
getMinutes()获取分(0-59)
getSeconds()获取秒(0-59)
getMilliseconds()获取毫秒(0-999)
getTime()获取时间(从 1970 年 1 月 1 日至今的毫秒数)
toLocaleString( )获取日期与时间 (如:2023/2/21 20:43:23)
toLocaleDateString()获取日期 (如:2023/2/21)
toLocaleTimeString()获取日期与时间 (如:20:43:23)
getUTCDate()根据世界时,返回月份中的第几天(从 1 到 31)
getUTCDay()根据世界时,返回星期几(0-6)
getUTCFullYear()根据世界时,返回年份
getUTCHours()根据世界时,返回小时(0-23)
getUTCMilliseconds()根据世界时,返回毫秒数(0-999)
getUTCMinutes()根据世界时,返回分钟(0-59)
getUTCMonth()根据世界时,返回月份(0-11)
getUTCSeconds()根据世界时,返回秒数(0-59)

GMT(格林尼治标准时间)

  • 格林尼治标准时间(Greenwich Mean Time,GMT)是指位于伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。 理论上来说,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时的时间。由于地球在它的椭圆轨道里的运动速度不均匀,这个时刻可能和实际的太阳时相差16分钟。 地球每天的自转是有些不规则的,而且正在缓慢减速。所以,格林尼治时间已经不再被作为标准时间使用。
  • 格林尼治标准时间

UTC(世界标准时间)

UTC+8(北京时间)

  • 北京时间
  • 北京时间是中国采用国际时区东八时区的区时作为标准时间。UTC+8

其实在文章最初抛出的现象的疑问可以解答了:

  • let newObj = JSON.parse(JSON.stringify(obj)),假设对象obj有属性time
    • 如果time的值是new Date(), 则newObj得到的拷贝后的数据属性time时间与北京时间会差8小时,JSON反序列化时间格式的数据时候,会在内部以UTC时间为标准进行转换,与北京时间差8小时也是正常现象。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 格林尼治时间 (Greenwich Mean Time, GMT) 是指位于英国格林尼治的皇家标准时间,它是世界时间的基准。北京时间 (Beijing Time) 则是指中国大陆所使用的时区。北京时间格林尼治时间快 8 小时,也就是说,当格林尼治时间为星期二的上午 10 点时,北京时间同时为星期二的下午 6 点。 ### 回答2: 格林尼治时间GMT)和北京时间(CST)是两个不同的时间标准。 首先,格林尼治时间是由国际时间标准化组织设立的全球标准时间。它以英国的格林尼治天文台为参考点,被广泛用于航空、航海、科学研究等领域。格林尼治时间与地球自转速度相匹配,每天被分为24个小时。 而北京时间中国的官方标准时间,主要用于中国的公共生活、政府机构和经济活动。北京时间格林尼治时间上推迟了8个小时,即北京时间相当于GMT时间的加8小时。 格林尼治时间基于地球的转动,是世界各地的时间的参考。相对而言,北京时间是根据中国地理边界以及国家所在的东八区设立的。这意味着北京时间中国境内是唯一的时间标准,而格林尼治时间则被全球范围接受和使用。 此外,格林尼治时间不受夏令时的影响,保持不变。而北京时间则根据中国的夏令时政策,在每年的4月和10月进行调整。 总的来说,格林尼治时间是全球通用的时间标准,用于协调世界各地的时间。而北京时间中国的官方标准时间,与格林尼治时间相差8个小时,并且受夏令时政策的影响。 ### 回答3: 格林尼治时间GMT)是世界时间的基准标准,以伦敦的观测为准,每天24小时不变。它不受夏令时等因素的影响,因此保持稳定。而北京时间(BJT)是中国标准时间,以中国的北京市为准,也是以24小时制表示。格林尼治时间北京时间的区别如下: 1. 时区差异:格林尼治时间是全球统一的时间标准,位于零时区,而北京时间位于东八区,比格林尼治时间慢8小时。 2. 受夏令时影响:格林尼治时间不受夏令时的影响,每天都保持一致。而北京时间在1986年至1991年之间曾实行过夏令时,但目前已不再使用夏令时,因此一年四季保持不变。 3. 地理位置不同:格林尼治时间是根据英国伦敦的观测点设立的,而北京时间是根据中国北京市的地理位置设立的。 4. 应用范围:格林尼治时间被全球范围内的航空、航海、通信、天文学等领域广泛应用,作为世界各地时间的参考基准。而北京时间主要用于中国中国相关领域的时间计算和标准。 总结来说,格林尼治时间是全球的统一参考时间,不受夏令时影响,而北京时间中国标准时间,受夏令时影响,并且比格林尼治时间慢8小时。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值