欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

时区与时间格式

最编程 2024-05-08 11:40:37
...

时区表示方法

时区缩写

  • UTC: 是 Coordinated Universal Time(协调世界时间)的缩写,是一种国际标准的时间尺度,用于统一全球的时间计量。UTC 可以视为格林尼治标准时间(GMT)的现代版本,两者在大部分情况下是相同的,但在有闰秒调整的情况下会有所不同。当提到“格林尼治标准时间”时,通常不包含闰秒调整,而 UTC 则包括了这些
  • GMT: 是 Greenwich Mean Time(格林尼治标准时间)的缩写,它是基于地球自转和历史上英国伦敦格林尼治天文台所在经线确定的时间基准。格林尼治子午线被定义为本初子午线,经度为 0°,以此作为划分地球东西经度以及确定世界时区的基础。在没有引入原子钟和协调世界时间(UTC)之前,GMT 长期以来是国际上广泛使用的参考时间标准。然而,由于地球自转速度存在不规律的变化,并不适合用于现代高精度时间计量系统。
  • EST: 是 Eastern Standard Time(东部标准时间)的缩写,它是指位于北美洲东部时区的标准时间。该时区包括美国东部大部分地区以及加拿大的一部分地区。在没有实行夏令时的情况下,EST 比格林尼治标准时间(GMT)或协调世界时间(UTC)慢 5 小时。
  • CST: CST 是 Central Standard Time(中部标准时间)的缩写,它是指位于北美洲中部时区的标准时间。该时区包括美国中西部、墨西哥北部以及加拿大部分地区。在没有实行夏令时的情况下,CST 比格林尼治标准时间(GMT)或协调世界时间(UTC)慢 6 小时。

IANA时区标识符

遵循IANA(互联网号码分配局)维护的时区数据库标准。标识符通常由区域名称和城市名组成,并可包含额外信息。

  • "Europe/London" 对应英国格林尼治标准时间(GMT)或欧洲中部夏令时间(BST)
  • "America/New_York" 对应美国东部时间(EST)或美国东部夏令时间(EDT)
  • "Asia/Shanghai" 对应中国北京时间

时区偏移量(UTC Offset)

以小时和分钟的形式表示相对于协调世界时间(UTC)的偏移,通常格式为 ±HH:mm 或 ±HHMM

  • UTC+08:00+0800: 表示比UTC时间快8小时的时区,如北京、上海
  • UTC-05:00-0500 表示比UTC时间慢5小时的时区,如纽约

时区时间换算

科普:24时区,GMT,UTC,DST,CST时间详解_cst time zone-****博客

时间格式

Thu, 15 Feb 2024 05:03:02 +0000

符合RFC 3339规范的互联网标准时间戳,也称为ISO 8601时间格式。各部分说明如下:

  • Thu: 这是星期几的英文缩写,表示的是星期四。
  • ,: 在这里起到分隔作用,用于将日期和具体时间分开。
  • 15: 表示日期中的日,即2月的第15天。
  • Feb: 是月份的英文缩写,表示二月。
  • 2024: 表示年份,这里是2024年。
  • 05:03:02: 表示具体的时间,其中“05”代表小时,“03”代表分钟,“02”代表秒。
  • +0000:这是时区偏移量。+0000表示格林尼治标准时间(GMT),即零时区。

2019-03-22T09:11:52.000+0000

  • 2019-03-22: 表示年-月-日
  • T: 在ISO 8601格式中,"T"是时间元数据的分隔符,用于区分日期和时间部分。
  • 09:11:52.000: 表示时:分:秒.毫秒
  • +0000: 表示时区偏移量,+0000表示格林尼治标准时间(GMT),即零时区。
function renderTime(date) {
  var dateee = new Date(date).toJSON();
  return new Date(+new Date(dateee) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '') 
}
// 转换前的格式: 2020-02-11T12:24:18.000+0000 ,转换后的格式为: 2020-02-11 12:24:18

Tue, 17 Jan 2017 21:36:23 +0800: +0800,即东8区

时间戳

当说到时间戳时,通常是指Unix时间戳,这个Unix时间戳是指距离1970年01月01日(UTC/GMT)00时00分00秒的毫秒数

// js获取时间戳
console.log(Date.now())
console.log(new Date().getTime())

通常我们用到的时间格式分两种2018/08/09 10:10:10或者2018-08-09 10:10:10,幸运的是js的Date对象很好的支持了这种格式的时间,通常我们可以通过

new Date('2018/08/09 10:10:10').getTime()或者

new Date('2018-08-09 10:10:10').getTime()来获取到时间戳

但是!!!!ie对于第二种不支持

因此,请采用以下的代码

let time = '2018-08-09 10:10:10'
time = time.replace(/-/g, '/') // 把所有-转化成/
let timestamp = new Date(time).getTime()

Safari 浏览器不支持 YYYY-MM-DD HH:mm:ss 日期格式

解决办法就是把YYYY-MM-DD HH:mm:ss格式的代码转为YYYY/MM/DD HH:mm:ss,这是safari浏览器支持的格式。

"2021-11-11 11:11:11".replace(/-/g, '/')