如何使用Day.js合并日期与时间?附目标格式示例
Day.js 合并日期与时间为ISO 8601格式的方案
内置方法实现
Day.js没有专门的“合并日期时间字符串”内置方法,但可以通过组合现有API轻松完成需求。由于给定的时间字符串已包含UTC时区(+00:00),我们可以先将日期和时间拼接为完整的ISO格式字符串,再用Day.js解析并输出标准的UTC格式。
需要注意:要处理UTC时区,需引入Day.js的utc插件。
示例代码:
const dayjs = require('dayjs'); const utc = require('dayjs/plugin/utc'); dayjs.extend(utc); const dateStr = '2023-04-04'; const timeStr = '13:02:00.963+00:00'; // 拼接日期时间字符串,解析后转为UTC格式输出 const formattedDatetime = dayjs(`${dateStr}T${timeStr}`) .utc() .format('YYYY-MM-DDTHH:mm:ss.SSS[Z]'); console.log(formattedDatetime); // 输出:2023-04-04T13:02:00.963Z
替代方案
1. 原生JavaScript Date对象
无需依赖Day.js,直接拼接字符串创建Date实例,再调用toISOString()方法即可得到目标格式:
const dateStr = '2023-04-04'; const timeStr = '13:02:00.963+00:00'; const datetime = new Date(`${dateStr}T${timeStr}`); console.log(datetime.toISOString()); // 输出:2023-04-04T13:02:00.963Z
2. 纯字符串拼接处理
如果可以确定时间字符串固定为+00:00时区,也可以直接通过字符串替换和拼接实现,这种方式性能最高,但通用性较差(仅适用于UTC时区场景):
const dateStr = '2023-04-04'; const timeStr = '13:02:00.963+00:00'; const formattedDatetime = `${dateStr}T${timeStr.replace('+00:00', 'Z')}`; console.log(formattedDatetime); // 输出:2023-04-04T13:02:00.963Z
内容的提问来源于stack exchange,提问作者Mir Stephen
相关产品推荐
相关产品推荐

