You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中如何让new Date()输出本地时区时间?

问题描述
var today = Date();
console.log(today); // Thu Aug 04 2022 15:28:52 GMT+0530 (India Standard Time)


var today = new Date();
console.log(today); // 2022-08-04T09:58:52.640Z

我已在CentOS系统中将时区设置为Asia/Calcutta,Date()函数能正确显示本地时间(如示例中的Aug 04 2022 15:28:52),请问如何让Node.js脚本里的new Date()也输出同样格式的本地时间?

解决方法

方法1:调用toString()方法

new Date()返回的是Date对象,Node.js默认打印时会调用toISOString()输出UTC格式。直接调用toString()方法,就能得到和Date()函数一致的本地时间格式:

var today = new Date();
console.log(today.toString()); // 输出示例:Thu Aug 04 2022 15:28:52 GMT+0530 (India Standard Time)

方法2:使用本地化格式方法

如果需要更灵活的时间展示,可以用toLocaleString()、toLocaleDateString()或toLocaleTimeString(),它们会自动适配系统时区生成对应格式:

// 完整本地时间字符串
console.log(today.toLocaleString()); 
// 仅日期部分
console.log(today.toLocaleDateString());
// 仅时间部分
console.log(today.toLocaleTimeString());

方法3:自定义格式输出

如果需要定制时间格式,可借助Intl.DateTimeFormat指定时区和格式规则:

const formatter = new Intl.DateTimeFormat('en-US', {
  timeZone: 'Asia/Calcutta',
  weekday: 'short',
  month: 'short',
  day: '2-digit',
  year: 'numeric',
  hour: '2-digit',
  minute: '2-digit',
  second: '2-digit',
  timeZoneName: 'long'
});
console.log(formatter.format(today)); 
// 输出示例:Thu Aug 04 2022 15:28:52 India Standard Time

方法4:全局设置进程时区

如果希望整个Node.js进程的Date对象默认使用本地时区,可通过设置环境变量实现:

  • 启动脚本时指定:
TZ='Asia/Calcutta' node your-script.js
  • 在代码开头设置(需Node.js版本支持):
process.env.TZ = 'Asia/Calcutta';
const today = new Date();
console.log(today.toString()); // 输出本地时间格式

内容的提问来源于stack exchange,提问作者Gracie williams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 06:45:29