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

使用moment.js(Node.js)转换时区时间至UTC时出现无效日期问题求助

解决moment.js时区转换返回「Invalid date」的问题

问题原因

  • 未指定时间解析格式:仅传入"10:00"这类纯时间字符串时,moment无法识别输入的格式规则,导致解析失败。
  • 未正确使用moment-timezone:moment核心库不包含时区数据库,必须安装并引入moment-timezone包才能处理Europe/Budapest这类时区标识。

解决步骤

1. 安装依赖

确保项目中安装了moment和moment-timezone:

npm install moment moment-timezone

2. 修改代码(两种可选方案)

方案一:补全日期信息

给输入时间添加完整的日期,让moment能明确解析完整的时间点:

const moment = require('moment-timezone');

const inputTime = "2024-05-20 10:00"; // 补全日期
const timezone = "Europe/Budapest";
const utcTime = moment.tz(inputTime, timezone).utc().format("HH:mm");
console.log(utcTime);

方案二:指定解析格式

明确告诉moment输入时间的格式,moment会自动补全当前日期(基于指定时区的日期):

const moment = require('moment-timezone');

const inputTime = "10:00";
const timezone = "Europe/Budapest";
// 第二个参数指定输入格式为HH:mm
const utcTime = moment.tz(inputTime, "HH:mm", timezone).utc().format("HH:mm");
console.log(utcTime);

内容的提问来源于stack exchange,提问作者Dhruval Bhuva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 01:05:22