Node.js实现格式化时间的两种方法详解

 更新时间:2025年03月21日 16:27:20   作者:还是鼠鼠  
在 Node.js 开发中,格式化时间是一个常见的需求,本文将介绍两种格式化时间的方式,即使用 JavaScript 内置方法 和 使用 npm 包 moment,需要的可以了解下

在 Node.js 开发中,格式化时间是一个常见的需求。例如,将时间格式化为 YYYY-MM-DD HH:mm:ss,或转换为不同的时区。本文将介绍两种格式化时间的方式:使用 JavaScript 内置方法 和 使用 npm 包 moment,并提供完整的代码示例,帮助开发者更详细地学习和使用。

1. 使用 JavaScript 内置方法格式化时间

Node.js 提供了 Date 对象,可以使用 toISOString()、getFullYear() 等方法格式化时间。

示例:使用 Date 对象格式化时间

文件名:format_date_native.js(JavaScript)

// format_date_native.js
 
function formatDate(date) {
    const year = date.getFullYear();
    const month = String(date.getMonth() + 1).padStart(2, "0");
    const day = String(date.getDate()).padStart(2, "0");
    const hours = String(date.getHours()).padStart(2, "0");
    const minutes = String(date.getMinutes()).padStart(2, "0");
    const seconds = String(date.getSeconds()).padStart(2, "0");
 
    return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}
 
// 获取当前时间并格式化
const now = new Date();
console.log("当前时间:", formatDate(now));

运行程序

node format_date_native.js

示例输出

当前时间: 2025-03-19 14:30:45

(具体时间根据运行时的系统时间而定)

原理解析

getFullYear() 获取四位年份

  • getMonth() 获取月份,返回值是 0-11,所以需 +1
  • getDate() 获取日期
  • getHours()、getMinutes()、getSeconds() 获取时间部分
  • padStart(2, "0") 用于补零,确保两位数格式

2. 使用 npm 包 moment 进行时间格式化

虽然 Date 对象可以手动格式化时间,但 moment.js 提供了更简洁的方式。

安装 moment

npm install moment

示例:使用 moment 格式化时间

文件名:format_date_moment.js(JavaScript)

// format_date_moment.js
const moment = require("moment");
 
// 获取当前时间并格式化
const formattedTime = moment().format("YYYY-MM-DD HH:mm:ss");
 
console.log("当前时间:", formattedTime);

运行程序

node format_date_moment.js

示例输出

当前时间: 2025-03-19 14:30:45

原理解析

moment() 获取当前时间

.format("YYYY-MM-DD HH:mm:ss") 直接转换为指定格式

3. 两种方法的对比

方式优势劣势
原生 Date无需额外安装,轻量级代码较繁琐,需手动格式化
moment.js语法简洁,支持时区、国际化需要安装额外 npm 包

4. 结论

  • 如果只是简单格式化时间,使用 Date 对象 也能实现。
  • 如果需要 更强大的日期操作(如时区转换、本地化格式),建议使用 moment.js
  • 现代开发推荐使用 dayjs(更轻量的替代 moment.js),如果对性能有更高要求可以考虑。

5.知识扩展

1.Node.js使用dayjs组件库格式化时间

// 下载 dayjs 组件库
npm install dayjs --save
 
// 进行引用
const dayjs = require('dayjs')
 
// 引用的dayjs实例是一个函数返回的实例,可以直接使用。
// 获取到当前时间,格式化(年-月-日 时-分-秒)
let currDate = dayjs().format('YYYY-MM-DD HH:mm:ss'); 
 
// 初始化其他时间,格式化(年-月-日 时-分-秒)
let date = new Date();
let currDate = dayjs(date).format('YYYY-MM-DD HH:mm:ss'); 

2.nodeJS中格式化iso日期

在Node.js中,可以使用内置的Date对象和toISOString()方法来格式化ISO日期。

ISO日期是一种标准的日期和时间表示格式,它的格式为YYYY-MM-DDTHH:mm:ss.sssZ,其中:

  • YYYY表示四位数的年份
  • MM表示两位数的月份
  • DD表示两位数的日期
  • T表示日期和时间的分隔符
  • HH表示两位数的小时数(24小时制)
  • mm表示两位数的分钟数
  • ss表示两位数的秒数
  • sss表示三位数的毫秒数
  • Z表示时区偏移量,格式为+HH:mm-HH:mm

以下是在Node.js中格式化ISO日期的示例代码:

const currentDate = new Date();
const isoDate = currentDate.toISOString();

console.log(isoDate);

输出结果类似于:2022-01-01T12:34:56.789Z

在这个例子中,我们首先创建一个Date对象来表示当前日期和时间。然后,使用toISOString()方法将日期对象转换为ISO格式的字符串。最后,通过console.log()打印输出ISO日期字符串。

需要注意的是,toISOString()方法返回的日期字符串是基于UTC时间的。如果需要基于本地时间进行格式化,可以使用其他库或手动处理时区偏移量。

到此这篇关于Node.js实现格式化时间的两种方法详解的文章就介绍到这了,更多相关Node.js格式化时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 深入解析Nodejs中的大文件读写

    深入解析Nodejs中的大文件读写

    这篇文章主要介绍了深入解析Nodejs中的大文件读写,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • Node.js完整安装配置指南(包含国内镜像配置)

    Node.js完整安装配置指南(包含国内镜像配置)

    本文介绍Node.js的安装配置过程,包括使用Chocolatey、官网下载、国内镜像下载等安装方法,验证安装,配置国内镜像源,环境变量配置,npm配置优化,常用镜像测速脚本,使用nrm管理镜像源,及故障排查内容,最后推荐了完整的配置命令和立即解决方案,感兴趣的朋友跟随小编一起看看吧
    2026-03-03
  • nodejs检测因特网是否断开的解决方案

    nodejs检测因特网是否断开的解决方案

    这篇文章主要给大家介绍了关于nodejs如何检测因特网是否断开的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用nodejs具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • 前端Electron新手入门教程详解

    前端Electron新手入门教程详解

    这篇文章主要介绍了Electron新手入门教程详解,首先围绕Electron框架的关键知识点进行详细讲解,然后对DEMO程序进行分析,让前端开发人员对使用Electron开发桌面应用程序有一个初步的了解。,需要的朋友可以参考下
    2019-06-06
  • 使用npm命令提示: ''npm'' 不是内部或外部命令,也不是可运行的程序的处理方法

    使用npm命令提示: ''npm'' 不是内部或外部命令,也不是可运行的程序的处理方法

    这篇文章主要介绍了使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序,本文通过图文并茂的形式给大家分享解决方案,需要的朋友可以参考下
    2020-05-05
  • 详解Node.js使用token进行认证的简单示例

    详解Node.js使用token进行认证的简单示例

    这篇文章主要介绍了详解Node.js使用token进行认证的简单示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • node作为中间服务层如何发送请求(发送请求的实现方法详解)

    node作为中间服务层如何发送请求(发送请求的实现方法详解)

    node作为中间服务层如何发送请求?下面小编就为大家分享一下发送请求的实现方法,具有很好的参考价值,希望对大家有所帮助
    2018-01-01
  • Node.js笔记之process模块解读

    Node.js笔记之process模块解读

    这篇文章主要介绍了Node.js process模块解读,process存在于全局对象上,不需要使用require()加载即可使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • nodejs动态创建二维码的方法

    nodejs动态创建二维码的方法

    这篇文章主要为大家详细介绍了nodejs动态创建二维码的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • NodeJS 基于 Dapr 构建云原生微服务应用快速入门教程

    NodeJS 基于 Dapr 构建云原生微服务应用快速入门教程

    Dapr 是一个可移植的、事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的、无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言和开发框架,本文重点介绍NodeJS云原生微服务应用,感兴趣的朋友一起看看吧
    2022-07-07

最新评论