在项目中经常会使用要时间的格式转换,比如数据库返回一个Date数据,你需要转成2024-10-2的格式,鸿蒙的原生SDK中是没有办法实现的,因此,在这里介绍第三方封装好并且成熟使用的库Dayjs。
切换到Entry文件夹下安装dayjs库。
cd .\entry\
ohpm install dayjs
查看oh-package.json5 文件,可以查看是否安装成功
let time: Date = new Date();
this.message = dayjs(time).format();
默认是 ISO8601 格式的字符串:输出 'YYYY-MM-DDTHH:mm:ssZ' 格式
可以在使用占位符加自定义的字眼来实现自己要的特定效果
let time: Date = new Date();
this.message = dayjs(time).format("YYYY年MM月DD日");
支持以上的占位符
let time: Date = new Date();
this.message = dayjs(time).format("YYYY-MM-DD");
如果需要格式化YY的字符时,可以使用 YY 中括号包括。
使用add方法,传入数值和时间单位,可以实现时间的增加
Button("点击增加时间")
.width("80%")
.margin({ top: 20 })
.onClick(() => {
this.OneDay = dayjs(this.OneDay).add(1, "day").toDate();
this.message = dayjs(this.OneDay).format("YYYY-MM-DD");
})
使用subtract方法,传入数值和时间单位,可以实现时间的减少,再通过todate方法来实现date的更新。
Button("点击减少时间")
.width("80%")
.margin({ top: 20 })
.onClick(() => {
this.OneDay = dayjs(this.OneDay).subtract(1, "day").toDate();
this.message = dayjs(this.OneDay).format("YYYY-MM-DD");
})
- 年(‘year’)
- 月(‘month’)
- 周(‘week’)
- 天(‘day’)
- 小时(‘hour’)
- 分钟(‘minute’)
- 秒(‘second’)
使用IsBefore方法可以判断day.js对象是否在另一个提供的日期时间之前。(毫秒级别)
使用IsSame方法可以判断day.js对象是否和另一个提供的时间相同。(毫秒级别)
使用IsAfter方法可以判断day.js对象是否在另一个提供的时间之后。(毫秒级别)
上面三种提供时间查询的方法可以将时间单位作为第二个参数传入,可以实现除毫秒以外的单位进行比较。例如,增加了一天,然后查询两个时间年份是否相同,返回结果是true,如果不加单位则为false。
Button("点击测试时间相同")
.width("80%")
.margin({ top: 20 })
.onClick(() => {
let temp = dayjs(this.OneDay).subtract(1, "day");
this.message = `${dayjs(this.OneDay).isSame(temp, 'year')}`;
})
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。