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

ISO日期转换为指定格式失败,输出异常格式求助

问题分析与解决方案

咱们直接说核心问题:你传给format函数的参数错了!

看你的代码,你把new Date(date).toString()的结果传给了format——但如果你用的是date-fns这类常用日期库的format方法,它的第一个参数应该是Date对象(或者时间戳),而不是toString()返回的那种人类可读字符串(比如"Tue Feb 12 2019 09:29:34 GMT+0800")。这种字符串没法被format正确解析,所以才输出了乱码一样的「On 2222, 2 February, yyyy」。

修正后的代码

直接把创建好的Date对象传给format就行,不用转成字符串:

public formatDate(date: string): string { 
  const dateObj = new Date(date);
  // 可选:增加有效性校验,避免无效日期导致的错误
  if (isNaN(dateObj.getTime())) {
    return "Invalid Date";
  }
  return format(dateObj, 'EEEE d MMMM yyyy'); 
}

额外说明

  1. 你的目标格式是「Tuesday 12 February 2019」,所以模板字符串里不需要加逗号,用'EEEE d MMMM yyyy'就可以匹配预期格式。
  2. 一定要确保传入的date是有效的ISO格式字符串(比如你给出的2019-02-12T09:29:34),不然new Date(date)会创建出一个无效的Date对象,格式化结果也会出错。

内容的提问来源于stack exchange,提问作者Greg-A

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:54:52