【问题标题】:How to convert string date to specific format?如何将字符串日期转换为特定格式?
【发布时间】:2021-06-10 15:32:17
【问题描述】:

我正在尝试从特定格式的字符串中获取日期,例如:

    const format = 'MM/dd/yyyy HH:mm';
    const dt = "2021-03-11T22:00:00.000Z"; // expecting "03/11/2021 22:00"
    
    console.log(moment(dt).format(format)); // but getting "03/Th/yyyy 23:00"
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

我尝试了 js 日期、时刻、luxon,但我不明白如何制作这个 :(
我怀疑000Z 出了问题,但这是我得到的日期。

【问题讨论】:

标签: javascript date momentjs luxon


【解决方案1】:

Moment.js 和 Luxon 的区别在于格式键的大小写。请查看密钥/令牌表。

注意: Moment.js 已被 deprecated 支持团队的新库 Luxon 和 ECMA-402 中引入的其他 ECMA 脚本标准。如果您现在正在考虑使用 Moment.js,只需切换到 Luxon。


如果您使用的是 Luxon,您可以在格式化日期之前致电.toUTC()。确保您的日期 (dd) 和年份 (yyyy) 格式键为小写。

const DateTime = luxon.DateTime;

const
  format = 'MM/dd/yyyy HH:mm',
  dt = "2021-03-11T22:00:00.000Z";

console.log(DateTime.fromISO(dt).toUTC().toFormat(format)); // 03/11/2021 22:00
<script src="https://cdnjs.cloudflare.com/ajax/libs/luxon/1.26.0/luxon.min.js"></script>

如果您使用 Moment.js,您可以在格式化日期之前致电 .utc()。确保您的日期 (DD) 和年份 (YYYY) 格式键为大写。

const
  format = 'MM/DD/YYYY HH:mm',
  dt = "2021-03-11T22:00:00.000Z";

console.log(moment(dt).utc().format(format)); // 03/11/2021 22:00
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

【讨论】:

  • 其实这个问题解决了谢谢。我在提出问题时是错误的,因为我在 luxon 中有示例并尝试使用 momentjs 进行修复。我不知道不同的字符串格式。谢谢这个作品。
【解决方案2】:

你的格式字符串错误,应该是:'MM/DD/YYYY HH:mm'

然后,如果您的日期带有':000Z',您应该使用substring() 方法将其删除。

工作代码:

const format = 'MM/DD/YYYY HH:mm';
const dateString = "2021-03-11T22:00:00:000Z";
const date = dateString.substring(0, dateString.length - 5);

console.log(moment(date).format(format)); // prints 03/11/2021 22:00
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

【讨论】:

    【解决方案3】:

    您需要使用YYYY 而不是yyyyDD 而不是dd 才能获得预期的结果。
    顺便说一句,我建议using another library than Moment,比如dayjs。

    【讨论】:

      猜你喜欢
      • 2018-08-30
      • 1970-01-01
      • 2014-09-12
      • 2020-08-10
      • 1970-01-01
      • 2020-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多