📅  最后修改于: 2023-12-03 15:25:15.164000             🧑  作者: Mango
在 JavaScript 中,我们可以使用内置的 Date
对象来处理日期和时间。如果我们有一个 UTC 时间,我们可以使用它来创建一个对应的日期对象。
以下是将 UTC 时间转换为日期的步骤:
Date
对象,并将 UTC 时间传递给它。UTC 时间可以是一个 Unix 时间戳,以毫秒为单位,也可以是一个 ISO 8601 日期字符串。getUTC*()
方法来获取日期对象的 UTC 时间信息,例如年份、月份、日期、小时、分钟、秒和毫秒。下面是一个示例函数,它接受一个 UTC 时间戳和日期格式,并输出对应的日期字符串:
/**
* 将 UTC 时间戳转换为日期字符串。
* @param {number} timestamp - UTC 时间戳,以毫秒为单位。
* @param {string} format - 日期格式字符串,例如 'YYYY-MM-DD hh:mm:ss'。
* @returns {string} - 格式化后的日期字符串。
*/
function convertUTCToDate(timestamp, format) {
const date = new Date(timestamp);
const year = date.getUTCFullYear();
const month = date.getUTCMonth() + 1;
const day = date.getUTCDate();
const hour = date.getUTCHours();
const minute = date.getUTCMinutes();
const second = date.getUTCSeconds();
const millisecond = date.getUTCMilliseconds();
const localDate = new Date(Date.UTC(
year,
month - 1,
day,
hour,
minute,
second,
millisecond
));
const dateString = format
.replace('YYYY', localDate.getFullYear())
.replace('MM', ('0' + (localDate.getMonth() + 1)).slice(-2))
.replace('DD', ('0' + localDate.getDate()).slice(-2))
.replace('hh', ('0' + localDate.getHours()).slice(-2))
.replace('mm', ('0' + localDate.getMinutes()).slice(-2))
.replace('ss', ('0' + localDate.getSeconds()).slice(-2));
return dateString;
}
// 转换 UNIX 时间戳
const timestamp = 1633776000000; // 2021-10-09T00:00:00Z
console.log(convertUTCToDate(timestamp, 'YYYY-MM-DD')); // '2021-10-09'
// 转换 ISO 8601 日期字符串
const dateString = '2021-10-09T00:00:00Z';
const timestamp = Date.parse(dateString);
console.log(convertUTCToDate(timestamp, 'YYYY-MM-DD')); // '2021-10-09'
通过使用内置的 Date
对象和 UTC 时间,我们可以轻松地将 UTC 时间转换为所需的日期格式。