javascript 如何将日期转换为 ISO 日期格式

how to Convert Date into ISO Date Format in javascript

我有一个这样的日期,我应该将它们转换成 ISO 格式

const date = 05/23/2022;

我需要这样

2022-05-23T00:00:00Z

请注意 .toISOString() 始终 returns UTC 中的时间戳,即使所讨论的时刻处于本地模式。这样做是为了与本机 JavaScript 日期 .toISOString() 的规范保持一致,如 ES2015 规范中所述。

let date = '24.05.2022 0:00:00';
let parsedDate = moment(date, 'DD.MM.YYYY H:mm:ss')
console.log(parsedDate.toISOString());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.1/moment.min.js"></script>

您可以使用 String.split() 获取相关日期的年月日。

然后我们可以传递给 Date.UTC() function and then the Date() 构造函数。 (注意:我们将 monthIndex 传递给 Date 构造函数,这就是我们从月份中减去 1 的原因)

要显示为 ISO 字符串,我们可以使用 Date.toISOString()

const [month, day, year] = '05/23/2022'.split('/');
const date = new Date(Date.UTC(year, month - 1, day));
const result = date.toISOString();
console.log('Date (ISO):', result);

我们也可以使用 luxon.

等日期/时间库轻松完成此操作

我们将使用 DateTime.fromFormat() 函数解析输入字符串,将时区设置为 'UTC'。

要输出ISO日期,我们可以使用DateTime.toISO()函数:

const { DateTime } = luxon;
const date = DateTime.fromFormat('05/23/2022', 'MM/dd/yyyy', { zone: 'UTC'});
console.log('Date (ISO):', date.toISO())
<script src="https://cdnjs.cloudflare.com/ajax/libs/luxon/2.3.1/luxon.min.js" integrity="sha512-Nw0Abk+Ywwk5FzYTxtB70/xJRiCI0S2ORbXI3VBlFpKJ44LM6cW2WxIIolyKEOxOuMI90GIfXdlZRJepu7cczA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

我们也可以在 moment.js 中使用 moment.utc(), then .toISOString():

const date = moment.utc('05/23/2022', 'MM/DD/YYYY');
console.log('Date (ISO):', date.toISOString())
<script src="https://momentjs.com/downloads/moment.js"></script>