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

JavaScript解析UTC日期时日期显示不符,该如何处理?

解决JavaScript Date解析UTC字符串时日期显示不符的问题

当你传入带Z或+00:00的ISO 8601格式字符串时,new Date()会将其解析为UTC标准时间,再转换为你的本地时区(这里是GMT-0300)。UTC的2023-05-11 00:00:00减去3小时,就是本地的2023-05-10 21:00:00,所以日期显示为10号——这是时区转换的正常结果,但不符合你想要显示11号的需求。

可行的处理方法:

  • 直接移除UTC标识:删掉字符串末尾的Z或+00:00,这样new Date()会把字符串解析为本地时区的对应时间,就能得到你期望的2023-05-11 00:00:00:
    new Date("2023-05-11T00:00:00")
    // Thu May 11 2023 00:00:00 GMT-0300 (Argentina Standard Time)
    
  • 保留UTC字符串但获取UTC日期:如果必须保留UTC格式的输入,想要获取UTC对应的日期日数,可以使用getUTCDate()方法:
    const date = new Date("2023-05-11T00:00:00Z");
    console.log(date.getUTCDate()); // 输出11
    
    这个方法不会改变本地时间的显示,但能拿到UTC时间对应的日期数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:42:33