【问题标题】:Format Luxon date to ISO8601 basic format将 Luxon 日期格式化为 ISO8601 基本格式
【发布时间】:2021-08-13 17:12:43
【问题描述】:

我正在使用 Luxon 来格式化 DateTime,我需要它是以下格式,包括 'T' 和 'Z' 字符:

20150830T123600Z

我尝试使用以下方法格式化 DateTime:

let dateTimeNow = DateTime.now();
let formattedDateTime = dateTimeNow.toFormat('yyyyMMddTHHmmssZ');

但我得到了格式:

2021-05-25T12:43:37.043Z 

如何删除“-”、“:”和“.”符号?

【问题讨论】:

  • related? - 那里的 OP 要求使用不同的格式,但您应该能够根据需要调整解决方案。
  • @MrFuppes 不是我想要的,但可以工作。不过这有点hacky。
  • 没有 Luxon:new Date().toISOString().replace(/(\.\d{3})|\W/g,'').

标签: javascript date datetime datetime-format luxon


【解决方案1】:

您可以使用单引号转义字符串(文档:Escaping),因此您可以使用toFormat("yyyyMMdd'T'HHmmss'Z'")

请注意,末尾的Z 代表UTC+0 偏移量,因此我建议不要用它来表示具有不同偏移量的当地时间。

例子:

const DateTime = luxon.DateTime;
let dateTimeNow = DateTime.utc();
let formattedDateTime = dateTimeNow.toFormat("yyyyMMdd'T'HHmmss'Z'");
console.log(formattedDateTime)
<script src="https://cdn.jsdelivr.net/npm/luxon@1.26.0/build/global/luxon.js"></script>

【讨论】:

    【解决方案2】:

    您也可以使用基本的 ISO 格式,而不是编写格式:

    const DateTime = luxon.DateTime;
    let dateTimeNow = DateTime.now().toUTC().startOf('second');
    console.log(dateTimeNow.toISO({ format: 'basic', suppressMilliseconds: true }))
    <script src="https://cdn.jsdelivr.net/npm/luxon@2.2.0/build/global/luxon.js"></script>

    【讨论】:

      猜你喜欢
      • 2021-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-11
      • 2016-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多