📜  iso 8601 日期到 Js 日期 - Javascript (1)

📅  最后修改于: 2023-12-03 15:01:27.233000             🧑  作者: Mango

将 ISO 8601 日期转换为 JavaScript 日期

在 JavaScript 中,我们可以通过 Date 对象来表示日期和时间。而 ISO 8601 是一种常用的日期和时间格式,它可以被简单地转换为 JavaScript 日期对象。

什么是 ISO 8601 日期格式?

ISO 8601 是国际标准化组织(ISO)制定的日期和时间的表示方法。它的格式如下:

YYYY-MM-DDThh:mm:ss.sssZ

其中,T 表示日期和时间的分隔符,Z 表示时区(UTC+0)。ss.sss 表示秒和毫秒部分,可省略。

举个例子,2022-07-01T12:30:45.678Z 表示 2022 年 7 月 1 日 12 点 30 分 45.678 秒,时区为 UTC+0。

如何将 ISO 8601 日期转换为 JavaScript 日期?

我们可以使用 Date 对象提供的 toISOString() 方法将 JavaScript 日期对象转换为 ISO 8601 格式,例如:

const date = new Date();
const isoString = date.toISOString();
console.log(isoString);  // 输出:'2022-06-27T02:53:10.078Z'

反之,我们可以使用 Date 对象提供的构造函数,将 ISO 8601 格式的日期字符串转换为 JavaScript 日期对象,例如:

const isoString = '2022-06-27T02:53:10.078Z';
const date = new Date(isoString);
console.log(date);  // 输出:Mon Jun 27 2022 10:53:10 GMT+0800 (中国标准时间)
使用第三方库 moment.js

第三方库 moment.js 提供了更加灵活和全面的日期格式化和解析功能,包括对 ISO 8601 格式的完全支持。

我们可以使用 moment() 函数将 ISO 8601 格式的日期字符串转换为 moment 对象,例如:

const isoString = '2022-06-27T02:53:10.078Z';
const momentObj = moment(isoString);
console.log(momentObj);  // 输出:moment("2022-06-27T10:53:10.078")

反之,我们可以使用 format() 方法将 moment 对象格式化为指定的日期字符串,例如:

const momentObj = moment();
const formatString = 'YYYY年MM月DD日 hh:mm:ss';
const dateString = momentObj.format(formatString);
console.log(dateString);  // 输出:'2022年06月27日 10:53:10'
结语

在 JavaScript 中,我们可以轻松地将 ISO 8601 格式的日期转换为 JavaScript 日期对象,便于进行日期计算、格式化和显示。此外,使用第三方库 moment.js 更加方便灵活,推荐大家使用。