时间转换那些事

大前提

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

时间的表现形式

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的时间
相关推荐
风清云淡_A3 小时前
【VUECLI】node.js打造自己的前端cli脚手架工具
前端·node.js
Never_Satisfied3 小时前
在JavaScript / Node.js中,SQLite异步查询函数实现
javascript·sqlite·node.js
YuspTLstar3 小时前
一文掌握Redux-toolkit核心原理
前端·react.js
云枫晖3 小时前
手写Promise-静态方法all和allSettled
前端·javascript
weixin_456904273 小时前
前端开发时npm install报错解决方案
前端·npm·node.js
东华帝君3 小时前
Object.create继承
前端
王嘉俊9253 小时前
Flask 入门:轻量级 Python Web 框架的快速上手
开发语言·前端·后端·python·flask·入门
风继续吹..3 小时前
Express.js 入门指南:从零开始构建 Web 应用
前端·javascript·express
一只小风华~3 小时前
命名视图学习笔记
前端·javascript·vue.js·笔记·学习