时间转换那些事

大前提

只有一种时间,只有一种时间,只有一种时间。请认清这个大前提!

时间的表现形式

UTC

UTC时间是目前全球最主要的时间标准,用于规范世界各地的时间。你可以把它理解为一个全球通用的标准时间,所有时区都以此为基准进行调整。用大白话讲是不带时区、全世界统一的标准时间

GMT

GMT是格林尼治标准时间,曾是世界时间标准的代名词,其基准点是位于英国伦敦郊区格林尼治的皇家天文台 。在日常生活中,人们经常将 GMTUTC (Coordinated Universal Time,协调世界时) 互换使用,因为它们的时间值是相同的

特别注意new Date() 返回的不是严格意义上的 GMT 时间,它返回的是一个基于 UTC(世界协调时间)的"时间戳",但用你本地的时区来显示这个时间戳。

时间戳(毫秒数)

从1970 年 1 月 1 日 00:00:00 UTC(世界协调时间)距离现在的一个数字。

  • 如果一个时间戳是 10 位数 (例如:1759363200),它通常表示秒数(Seconds)。
  • 如果一个时间戳是 13 位数 (例如:1759363200000),它通常表示毫秒数(Milliseconds),这是目前更常用的高精度标准。

ISO 8601 格式

形如 YYYY-MM-DD THH:MM:SSZ 的时间格式,广泛应用于数据库、编程语言、网络协议(如 JSON)和金融交易,是专业数据交换的标准。

如何准确使用时间

笔者在这里推荐直接使用dayjs工具库处理时间,因为dayjs只有2kb大小,但是内置的方法非常多,适用很多业务场景

dayjs 默认返回带时区的时间(本机时间)

ISO 8601 格式的时间字符串

js 复制代码
dayjs()?.toISOString()

// 2025-09-30T01:57:49.075Z ISO 8601 格式的时间字符串

毫秒数

js 复制代码
dayjs()?.valueOf()

// 1759197673790 返回毫秒数

format

在项目中经常用到

js 复制代码
// 假设当前时间是:2025年09月29日 19:02:28 
const date = dayjs(); 

// 常用格式 
date.format('YYYY-MM-DD HH:mm:ss'); 

// 输出: "2025-09-29 19:02:28" 
date.format('MM/DD/YYYY'); 
// 输出: "09/29/2025"

时区转换

时区转换需要安装dayjs插件。需要在代码中按照如下方式使用

js 复制代码
import dayjs from "dayjs";
import utc from "dayjs/plugin/utc";
import timezone from "dayjs/plugin/timezone";

dayjs.extend(utc);

默认UTC时间

js 复制代码
dayjs.utc() 

// 返回一个UTC的时间
相关推荐
油丶酸萝卜别吃1 小时前
utils.js 说明文档
开发语言·javascript·ecmascript
zyplayer-doc4 小时前
VuePress类静态文档站和动态知识库怎么选:两种技术路线的适用场景
javascript·人工智能·后端·安全·智能手机
紫禁玄科5 小时前
Shai-Hulud:npm生态的自我复制蠕虫风暴
前端·npm·node.js
东风破_5 小时前
后端API没写好,前端难道干等着吗?
前端
用户938515635076 小时前
从前后端分离到前端接口工程:React + MockJS + Vite 解析
前端·后端·全栈
用户938515635076 小时前
从零在浏览器里跑 DeepSeek-R1:WebGPU + Transformers.js 全链路实战(三)
前端·react.js·typescript
excel6 小时前
当前端行情变差,我们为什么还要坚持?
前端
鸿是江边鸟,曾是心上人6 小时前
快速搭建HTTPS本地开发环境
前端
To_OC7 小时前
写了 5 个表单 Demo 后,我终于彻底搞懂了 React 受控与非受控组件
前端·react.js·前端框架
Sterting7 小时前
第9课 Vue Router 路由
前端·vue.js