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

使用date-fns将日期解析为UTC格式2022-07-20T00:00:00.000Z的问题

解决日期解析时区偏移问题

你遇到的问题确实是时区导致的:parse方法默认按本地时区解析日期字符串,你的时区为UTC+3,所以本地时间2022-07-20 00:00:00对应的UTC时间就是2022-07-19 21:00:00,因此toISOString()输出的是UTC标准时间。

要得到目标格式2022-07-20T00:00:00.000Z,可以用以下两种方案:

方案一:使用date-fns的parseUTC方法

如果你用的是date-fns库,直接替换为parseUTC(按UTC时区解析日期)即可:

const { parseUTC } = require('date-fns');

const main = () => {
  const day = '2022-07-20';
  const result = parseUTC(day, 'yyyy-MM-dd', new Date());
  console.log(result.toISOString()); // 输出:2022-07-20T00:00:00.000Z
};

方案二:直接通过Date构造函数解析

ES标准规定,YYYY-MM-DD格式的字符串会被Date构造函数按UTC时区解析,无需额外库:

const main = () => {
  const day = '2022-07-20';
  const result = new Date(day);
  console.log(result.toISOString()); // 输出:2022-07-20T00:00:00.000Z
};

注意:如果日期格式是YYYY/MM/DD或其他非ISO标准格式,Date构造函数会按本地时区解析,此时建议用方案一。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 10:15:42