本文原创发布在华为开发者社区。
介绍
本示例展示了一个日期格式转化的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;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。