在 TypeScript 中获取当前日期和时间

在 TypeScript 中获取当前日期和时间

Get the current date and time in TypeScript

使用Date()构造函数获取 TypeScript 中的当前日期和时间,例如const now = new Date(). Date()不带任何参数调用构造函数时,它返回一个Date表示当前日期和时间的对象。

索引.ts
// 👇️ const now: Date const now = new Date(); console.log(now); // 👉️ Thu Feb 17 2022 10:52:58

我们调用
Date()
构造函数来获取
Date表示 TypeScript 中当前日期和时间的对象。

日期对象存储一个数字,表示自 1970 年 1 月 1 日 UTC 以来经过的毫秒数。

变量的类型now被正确推断为,这使我们能够使用该对象实现Date的任何内置方法。Date

Date以下是您可能在对象上使用的方法的一些示例。

索引.ts
// 👇️ const now: Date const now = new Date(); console.log(now); // 👉️ Thu Feb 17 2022 10:52:58 console.log(now.toLocaleDateString()); // 👉️ 2/17/2022 console.log(now.toLocaleString()); // 👉️ 2/17/2022, 10:57:49 AM console.log(now.toUTCString()); // 👉️ Thu, 17 Feb 2022 08:57:49 GMT console.log(now.toISOString()); // 👉️ 2022-02-17T08:57:49.903Z

这是一个将日期和时间格式化为 的示例YYYY-MM-DD hh:mm:ss,但可以轻松调整为其他格式,例如MM/DD/YYYY
MM/DD/YYYY hh:mm:ss

索引.ts
function padTo2Digits(num: number) { return num.toString().padStart(2, '0'); } function formatDate(date: Date) { return ( [ date.getFullYear(), padTo2Digits(date.getMonth() + 1), padTo2Digits(date.getDate()), ].join('-') + ' ' + [ padTo2Digits(date.getHours()), padTo2Digits(date.getMinutes()), padTo2Digits(date.getSeconds()), ].join(':') ); } // 👇️ YYYY-MM-DD hh:mm:ss // 👇️ "2022-02-17 11:01:52" (Current date and time) console.log(formatDate(new Date())); // 👇️️ 2025-05-04 05:24:07 (yyyy-mm-dd hh:mm:ss) console.log(formatDate(new Date('May 04, 2025 05:24:07')));

该函数使用了以下 6 个Date相关方法。

  • Date.getFullYear
    方法 – 返回代表与日期对应的年份的四位数字。

  • Date.getMonth0 – 返回一个介于(January) 和(December)之间的整数11,代表给定日期的月份。是的,不幸的是该getMonth方法已关闭1

  • Date.getDate1 – 返回一个介于和之间的整数,31表示特定日期的月中日期。

  • Date.getHours – 返回指定日期的小时数。

  • Date.getMinutes – 返回日期的分钟数。

  • Date.getSeconds – 返回特定日期的秒数。

getMonth方法返回从 0 到 11 的从零开始的月份索引,表示一月是0,十二月是11

getMonth方法是从零开始的,所以我们将 1 添加到它的返回值。

我们首先创建了一个padTo2Digits函数,如果月、日、小时、分钟或秒仅包含一个数字(小于 10),该函数负责添加前导零。

索引.js
function padTo2Digits(num) { return num.toString().padStart(2, '0'); } console.log(padTo2Digits(3)); // 👉️ '03' console.log(padTo2Digits(7)); // 👉️ '07' console.log(padTo2Digits(10)); // 👉️ '10'

我们要确保结果始终一致,并且月、日、小时、分钟和秒都有 2 位数字,因此我们使用了
padStart
方法。

我们传递给padTo2Digits函数的第一个参数是字符串的总长度,所以如果它已经有 2 位数字,它永远不会填充一个值。

我们将年、月和日放在一个数组中,因此我们可以用连字符分隔符连接它们。

索引.ts
console.log(['2022', '02', '17'].join('-')); // 👉️ '2022-02-17' console.log(['2024', '07', '24'].join('-')); // 👉️ '2024-07-24'

这可能是任何其他分隔符,例如正斜杠/,如果需要(例如 to MM/DD/YYYY),您可以通过切换数组中元素的位置轻松地重新排序日期组件。

这让我们得到了格式为YYYY-MM-DD.

下一步是将时间相关方法的返回值放在一个数组中,并用冒号分隔符将它们连接起来。

索引.js
console.log(['06', '30', '17'].join(':')); // 👉️ '06:30:17' console.log(['09', '11', '49'].join(':')); // 👉️ '09:11:49'

我们使用与日期组件相同的方法来格式化时间组件。