从Moment迁移至Luxon:如何格式化指定样式的时间戳
解决Luxon自定义UTC时间格式化问题
要实现你需要的YYYY-MM-DD HH:mm:ss GMT格式,不需要绕弯转ISO或JSDate,直接用Luxon原生方法即可,逻辑和Moment一致:
正确代码示例
假设date是你的Luxon DateTime实例:
const finalResult = date.minus({ hours: 2 }) .setZone('utc') // 或用.toUTC(),效果完全一致 .toFormat('yyyy-MM-dd HH:mm:ss [GMT]');
如果是基于当前时间处理:
import { DateTime } from 'luxon'; const finalResult = DateTime.now() .minus({ hours: 2 }) .setZone('utc') .toFormat('yyyy-MM-dd HH:mm:ss [GMT]');
关键说明
- Luxon的
toFormat()对应Moment的format(),格式令牌大部分兼容:yyyy(4位年)、MM(两位月)、dd(两位日)、HH(24小时制小时)、mm(分)、ss(秒) - 固定字符串
GMT用方括号[]包裹,避免被解析为格式令牌,和Moment用法一致 - 全程在Luxon实例上操作,无需转成JSDate,避免时区信息混乱
内容的提问来源于stack exchange,提问作者GustaMan9000
相关产品推荐
相关产品推荐

