UTC时间
UTC代表协调世界时(Coordinated Universal Time)。它是一种基于原子钟的时间标准,被广泛用于全球范围的时间计算和协调。
UTC被设计为与格林尼治标准时间(GMT)相同,因此在大多数情况下,两者可以互换使用。UTC在全球范围内保持一致,不受地理位置和时区的影响。
与UTC相比,其他时区通常在UTC的基础上增加或减少小时数,用来表示相对于UTC的时间偏移。
北京时间
北京时间(BJT),又名中国标准时间(China Standard Time,CST),是中国大陆的标准时间,比世界协调时快八小时(即UTC+8)。
时间的表达
在日期和时间表示中,"Z"表示协调世界时(Coordinated Universal Time,缩写为UTC)。当日期和时间后面跟着一个字母 "Z" 时,表示该时间是以UTC为基准的。
例如,2023年10月27日14:30:00 UTC的表示形式为:2023-10-27T14:30:00Z。这意味着该时间是基于UTC的,而不是特定于任何时区的本地时间。
"2023-10-26T19:50:37+08:00",表示的是2023年10月26日19点50分37秒的本地时间,时区偏移为+08:00。这意味着该时间是基于UTC+8时区的时间,也称为中国标准时间(China Standard Time)或北京时间。
new Date()的使用
JavaScript中的new Date()构造函数用于创建一个表示当前日期和时间的对象。
无参数
在浏览器环境中,如果没有特别设置时区,new Date()将获取到当前用户设备的本地时间。这意味着它将返回当前用户所在时区的日期和时间。
需要注意的是,new Date()返回的是一个表示日期和时间的对象,它不包含时区信息。它表示的是一个绝对的时间点,不随时区的改变而改变。
new Date() // Sun Oct 29 2023 16:48:17 GMT+0800 (中国标准时间)
时间戳整数
一个整数,代表自 UTC 1970 年 1 月 1 日 00:00:00以来的毫秒数。
new Date(0) // Thu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间)
日期字符串
一个代表日期的字符串值,其格式由 Date.parse() 方法所识别。
解析日期字符串时,一定要确保输入符合 ISO 8601 格式(YYYY-MM-DDTHH:mm:ss.ssZ),其他格式的解析行为是实现定义的,可能无法在所有浏览器上运行。
仅有日期的字符串(例如 "1970-01-01")被视为 UTC,而日期时间的字符串(例如 "1970-01-01T12:00")被视为本地时间。因此,我们也建议你确保这两种类型的输入格式是一致的。
new Date('1970-01-01') // Thu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间)
new Date('1970-01-01T12:00') // Thu Jan 01 1970 12:00:00 GMT+0800 (中国标准时间)