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

Luxon DateTime格式化如何输出小写am/pm而非大写AM/PM

Luxon 输出小写am/pm实现方案

Luxon 原生没有内置直接输出小写am/pm的格式化占位符,默认a占位符固定返回大写的AM/PM。在不引入第三方库的前提下,有两种可行的纯Luxon实现方式:

  • 方案1:直接转换结果字符串(最简实现)
    你当前使用的格式化模板MM/dd/yyyy hh:mm a的输出内容除AM/PM外均为数字、斜杠、冒号这类无大小写区分的字符,直接对格式化返回结果调用toLowerCase()即可得到目标结果,不会影响其他内容的展示:

    const cur = DateTime.fromISO("2022-06-22T06:49:07.911Z")
      .toFormat("MM/dd/yyyy hh:mm a")
      .toLowerCase();
    // 输出结果: "06/22/2022 02:49 am"
    

    如果你的格式化模板中存在其他需要保留大写形式的英文字符,不要使用该方案,选择第二种自定义配置的方式即可。

  • 方案2:自定义子午线输出规则(无副作用)
    Luxon的toFormat方法支持传入配置项覆写meridiem(上下午标识)的生成逻辑,直接指定返回小写的am/pm,不需要对结果字符串做二次替换/转换,不会影响模板中其他字符的大小写:

    const cur = DateTime.fromISO("2022-06-22T06:49:07.911Z").toFormat("MM/dd/yyyy hh:mm a", {
      meridiem: (hour) => hour < 12 ? "am" : "pm"
    });
    // 输出结果: "06/22/2022 02:49 am"
    

注意:上述两种方案均完全基于Luxon原生能力实现,不需要引入任何额外第三方依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 21:18:26