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

NodeJS转换yyyy-MM-dd'T'HH:mm:ss.SSS'Z'日期时遇函数报错问题

问题分析与解决

错误原因

你的代码存在几个关键问题,直接导致了TypeError: DateTimeFormatter.ofPattern is not a function错误:

  • 混淆Java与JavaScript语法:DateTimeFormatter.ofPattern、LocalDate.parse、Console.out都是Java的日期API写法,JavaScript/Node.js环境根本没有这些内置对象和方法。
  • 第三方包用法错误:你引入的datetimeformatter包(若已安装)的API设计和Java的DateTimeFormatter完全不同,它并不提供ofPattern静态方法,这是触发错误的直接原因。

修复方案

在Node.js/JavaScript环境中处理日期格式化,推荐用原生Date对象或成熟第三方日期库,以下是两种可行实现:

方式1:使用原生JavaScript Date对象

// 假设gDate是符合ISO格式的字符串,比如"2024-05-20T12:34:56.789Z"
function formatDate(gDate) {
  const date = new Date(gDate);
  // 提取UTC时间的年、月、日并补零
  const year = date.getUTCFullYear();
  const month = String(date.getUTCMonth() + 1).padStart(2, '0');
  const day = String(date.getUTCDate()).padStart(2, '0');
  return `${year}${month}${day}`;
}

// 调用示例
const gDate = "2024-05-20T12:34:56.789Z";
const formattedDate = formatDate(gDate);
console.log(formattedDate); // 输出:20240520

方式2:使用date-fns库(更简洁)

  1. 先安装依赖:
npm install date-fns
  1. 编写代码:
const { parseISO, format } = require('date-fns');

// 假设gDate是ISO格式字符串
const gDate = "2024-05-20T12:34:56.789Z";
const date = parseISO(gDate);
const formattedDate = format(date, 'yyyyMMdd');
console.log(formattedDate); // 输出:20240520

额外注意点

  • JavaScript中输出内容用console.log(),而非Java的Console.out()。
  • 若使用第三方日期包,务必先仔细阅读官方文档确认API用法,不要直接照搬Java写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:18:27