时间转换那些事

大前提

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

时间的表现形式

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的时间
相关推荐
用户921080262862 分钟前
前端 Vue 专栏 05:从 Object.defineProperty 到 Proxy,彻底理解 Vue 响应式原理
前端
Fluxart.ai12 分钟前
GPT Image 2.5 有使用次数限制吗?额度、并发、频率限制说明
服务器·前端·gpt
程序员海军36 分钟前
AI 越来越强,为什么打工人反而越来越累、越来越内耗了?
前端·程序员·aigc
vx_Biye_Design40 分钟前
springboot游泳馆系统93765-计算机课程设计、毕业设计
java·javascript·spring boot·后端·python·spring·课程设计
晴天161 小时前
VSCodium 项目介绍
前端·javascript·vscode
世岩清上1 小时前
展厅数字内容同质化严重,怎样打造专属叙事风格?
大数据·前端·javascript·人工智能·html·音视频·展厅改造
晴天161 小时前
前端动画体系全解析:类型、实现方案与工程选型最佳实践
前端
持敬chijing1 小时前
Web前后端开发-JavaScript 入门教程
开发语言·前端·javascript
李高钢1 小时前
Python Django 框架入门:从零搭建你的第一个 Web 应用
前端·python·django
PC2005_cloud1 小时前
Rust学习笔记:所有权、借用与生命周期——Rust的核心机制
前端·后端