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

如何使用dayjs从ISO日期字符串中获取正确的小时数?

问题原因

你遇到的问题是因为dayjs默认会把带Z后缀的UTC日期字符串转换为本地时区的时间,所以调用hour()返回的是你本地时区对应的小时,而非原UTC时间的8点。另外你代码里有个语法错误:const hour : dayjs(date).hour();里的冒号应该改成等号。

解决方法

要直接获取UTC时间的小时部分,有两种常用方式:

方式一:使用utc()方法解析UTC时间

直接用dayjs.utc()解析日期,这样后续的时间方法都会基于UTC时区返回值:

function getHours(date:string){
  const hour = dayjs.utc(date).hour();
  console.log(hour);
}

getHours("2023-05-06T08:00:00Z"); // 输出8

方式二:使用parseZone()保留原时区

如果需要保留日期字符串自带的时区信息(这里是UTC),可以用parseZone()方法,避免转换为本地时区:

function getHours(date:string){
  const hour = dayjs(date).parseZone().hour();
  console.log(hour);
}

getHours("2023-05-06T08:00:00Z"); // 输出8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 12:05:11