如何使用Luxon格式化纯时间(无需传入日期参数)
解决方案
Luxon完全可以实现同样的效果,不需要你额外提供日期数据,有两种常用实现方式:
- 方案1:使用
DateTime类(兼容性最好,全版本Luxon支持)
解析时只指定时间匹配规则,格式化时仅输出时间字段即可,内部自动生成的默认日期不会对输出结果产生任何影响:
import { DateTime } from 'luxon'; // 解析17:00并格式化 const result = DateTime.fromFormat('17:00', 'HH:mm').toFormat('h:mma'); // 输出结果:5:00pm
如果你的输入可能只有小时没有分钟,也可以和moment一样传入多组解析规则兼容不同格式的输入:
// 同时适配"17"和"17:00"两种输入格式 const result = DateTime.fromFormat('17:00', ['HH', 'HH:mm']).toFormat('h:mma');
- 方案2:使用
Time类(Luxon 3.0+版本支持,更适合纯时间场景)Time是Luxon专门为无日期的纯时间场景设计的类,本身不携带任何日期属性,更符合你的使用需求:
import { Time } from 'luxon'; const result = Time.fromFormat('17:00', 'HH:mm').toFormat('h:mma'); // 输出结果:5:00pm
内容的提问来源于stack exchange,提问作者drake035
相关产品推荐
相关产品推荐

