时间戳格式转换鸿蒙示例代码

鸿蒙场景化示例代码技术工程师
发布于 2025-4-9 16:42
3115浏览
0收藏

本文原创发布在华为开发者社区

介绍

本示例展示了一个日期格式转化的Demo,其功能为将一个时间戳转换为当前的时间。

时间戳格式转换源码链接

效果预览

时间戳格式转换鸿蒙示例代码-鸿蒙开发者社区

使用说明

输入要格式化的时间,组件会实时更新格式化后的时间。

实现思路

构造formatDate方法。

formatDate(timestamp: number, format = 'yyyy-mm-dd') {
    let res = "";
    try {
      const date = new Date(timestamp);
      const opt: Opt = {
        yy: date.getFullYear().toString(),
        mm: (date.getMonth() + 1).toString(),
        dd: date.getDate().toString(),
        HH: date.getHours().toString(),
        MM: date.getMinutes().toString(),
        SS: date.getSeconds().toString(),
      };
      const regKeys: string[] = ['y+', 'm+', 'd+', 'H+', 'M+', 'S+'];
      for (let i = 0; i < regKeys.length; i++) {
        const regKey = regKeys[i];
        const reg = new RegExp(regKey);
        let ret = reg.exec(format);
        if (ret) {
          switch (regKey) {
            case 'y+':
              format = format.replace(reg, ret.length === 1 ? opt.yy : opt.yy.padStart(ret.length, "0"));
            case 'm+':
              format = format.replace(reg, ret.length === 1 ? opt.mm : opt.mm.padStart(ret.length, "0"));
            case 'd+':
              format = format.replace(reg, ret.length === 1 ? opt.dd : opt.dd.padStart(ret.length, "0"));
            case 'H+':
              format = format.replace(reg, ret.length === 1 ? opt.HH : opt.HH.padStart(ret.length, "0"));
            case 'M+':
              format = format.replace(reg, ret.length === 1 ? opt.MM : opt.MM.padStart(ret.length, "0"));
            case 'S+':
              format = format.replace(reg, ret.length === 1 ? opt.SS : opt.SS.padStart(ret.length, "0"));
          }
        }
      }
      res = format;
    } catch (error) {
      hilog.error(0x0000, 'Index', "ERROR formatDate" + error);
    }
    return res;
  }
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.

分类
收藏
回复
举报


回复
    相关推荐