时间转换那些事

大前提

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

时间的表现形式

UTC

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

GMT

GMT是格林尼治标准时间,曾是世界时间标准的代名词,其基准点是位于英国伦敦郊区格林尼治的皇家天文台 。在日常生活中,人们经常将 GMT 和 UTC (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的时间
相关推荐
仿生狮子2 小时前
OpenAI 攻下千禧年难题之后,开发者似乎无动于衷
前端·数学·vibecoding
夏幻灵5 小时前
JavaScript this 面试:五种绑定规则、优先级与常见面试陷阱
开发语言·javascript·面试
Lvan的前端笔记5 小时前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
三天不学习6 小时前
Egg.js 4 突然爆火,原因是否归结于AI 原生落地需求爆发?
前端·javascript·全栈·egg.js
xcs194057 小时前
前端 vue 的前端页面debugger 进不去
前端·javascript·vue.js
明月_清风8 小时前
Deno 终局来了:从挑战 Node 到被 Cloudflare 收编
前端·后端·node.js
Csvn9 小时前
框架性能优化
前端
回眸&啤酒鸭10 小时前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能
用户693717500138410 小时前
2026,程序员的时代拐点到了
android·前端·后端
大龄秃头程序员10 小时前
一次 iBeacon + BLE 无感解锁方案的实现记录
前端