📌  相关文章
📜  将 utc 转换为日期 javascript (1)

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

将 UTC 时间转换为日期(JavaScript)

在 JavaScript 中,我们可以使用内置的 Date 对象来处理日期和时间。如果我们有一个 UTC 时间,我们可以使用它来创建一个对应的日期对象。

步骤

以下是将 UTC 时间转换为日期的步骤:

  1. 创建一个 Date 对象,并将 UTC 时间传递给它。UTC 时间可以是一个 Unix 时间戳,以毫秒为单位,也可以是一个 ISO 8601 日期字符串。
  2. 使用 getUTC*() 方法来获取日期对象的 UTC 时间信息,例如年份、月份、日期、小时、分钟、秒和毫秒。
  3. 创建一个日期格式字符串,将 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 时间转换为所需的日期格式。