时间转换那些事

大前提

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

时间的表现形式

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的时间
相关推荐
@大迁世界几秒前
08.CSS if() 函数
前端·css
Moment7 分钟前
小米不仅造车,还造模型?309B参数全开源,深度思考完胜DeepSeek 🐒🐒🐒
前端·人工智能·后端
苏打水com10 分钟前
第十六篇:Day46-48 前端安全进阶——从“漏洞防范”到“安全体系”(对标职场“攻防实战”需求)
前端·javascript·css·vue.js·html
5C2413 分钟前
从思想到实践:前端工程化体系与 Webpack 构建架构深度解析
前端·前端工程化
咕噜企业分发小米18 分钟前
如何平衡服务器内存使用率和系统稳定性?
java·服务器·前端
前端无涯19 分钟前
react组件(2)---State 与生命周期
前端·react.js
GoldenPlayer20 分钟前
Web-Tech:CORS的触发机制
前端
AY呀20 分钟前
Vite:现代前端构建工具的革命与实战指南
前端·vue.js·vite
爬山算法20 分钟前
Netty(13)Netty中的事件和回调机制
java·前端·算法
前端无涯26 分钟前
react组件(3)---组件间的通信
前端·react.js