如何使用Luxon.js将数据库UTC日期转换为指定格式的本地时间
你可以通过Luxon的toFormat方法自定义输出格式实现需求,完整代码如下:
const { DateTime } = require('luxon'); // 已有的UTC时间转圣地亚哥时区逻辑 const d = DateTime.fromISO('2021-06-14T16:00:30.000Z', { zone: 'America/Santiago' }); // 自定义格式输出,单引号包裹的Z会作为静态字符原样输出 const formattedDate = d.toFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); console.log(formattedDate); // 输出结果:2021-06-14T12:00:30.000Z
原理解释
- 你之前无法得到指定格式,是因为Luxon默认的
toISO()方法会自动拼接对应时区的偏移量,而非输出固定的Z后缀 - 格式串中用单引号包裹的内容会被当成静态字符串处理,不会被解析为时间格式占位符,因此可以强制输出
Z后缀 - 如果你的实际需求是输出带标准时区偏移的ISO时间,不需要固定
Z后缀,直接调用d.toISO()即可,输出结果为2021-06-14T12:00:30.000-04:00
内容的提问来源于stack exchange,提问作者Programmer89
相关产品推荐
相关产品推荐

