您现在的位置是:首页 > 编程 > 

【HarmonyOS】时间处理Dayjs

2025-07-27 13:02:30
【HarmonyOS】时间处理Dayjs 背景在项目中经常会使用要时间的格式转换,比如数据库返回一个Date数据,你需要转成2024-10-2的格式,鸿蒙的原生SDK中是没有办法实现的,因此,在这里介绍第三方封装好并且成熟使用的库Dayjs。安装切换到Entry文件夹下安装dayjs库。代码语言:javascript代码运行次数:0运行复制cd .\entry\ ohpm install dayj

【HarmonyOS】时间处理Dayjs

背景


在项目中经常会使用要时间的格式转换,比如数据库返回一个Date数据,你需要转成2024-10-2的格式,鸿蒙的原生SDK中是没有办法实现的,因此,在这里介绍第三方封装好并且成熟使用的库Dayjs。

安装


切换到Entry文件夹下安装dayjs库。

代码语言:javascript代码运行次数:0运行复制
cd .\entry\
ohpm install dayjs

查看oh-package.json5 文件,可以查看是否安装成功

dayjs使用


格式化
  • 基本格式化使用
代码语言:javascript代码运行次数:0运行复制
let time: Date = new Date();
 = dayjs(time).format();

默认是 ISO8601 格式的字符串:输出 'YYYY-MM-DDTHH:mm:ssZ' 格式

  • 自定义格式化使用

可以在使用占位符加自定义的字眼来实现自己要的特定效果

代码语言:javascript代码运行次数:0运行复制
          let time: Date = new Date();
           = dayjs(time).format("YYYY年MM月DD日");
  • 占位符格式化
    • 'YYYY' 表示四位数的年份。
    • 'YY' 表示两位数的年份。
    • 'M' 表示从1到12。
    • 'MM' 表示两位数的月份。
    • 'MMM' 表示月份缩写。
    • 'D' 表示月份中的天数
    • 'DD' 表示两位数的日。
    • 'd' 一周中的天数,星期天为0,星期一为1
    • 'HH' 表示两位数的小时(24小时制)。
    • 'hh' 表示12小时制的两位小时数
    • 'mm' 表示两位数的分钟。
    • 'ss' 表示两位数的秒。

支持以上的占位符

代码语言:javascript代码运行次数:0运行复制
          let time: Date = new Date();
           = dayjs(time).format("YYYY-MM-DD");

如果需要格式化YY的字符时,可以使用 YY 中括号包括。

时间操作
  • 添加时间

使用add方法,传入数值和时间单位,可以实现时间的增加

代码语言:javascript代码运行次数:0运行复制
Button("点击增加时间")
        .width("80%")
        .margin({ top: 20 })
        .onClick(() => {
          this.OneDay = dayjs(this.OneDay).add(1, "day").toDate();
           = dayjs(this.OneDay).format("YYYY-MM-DD");
        })
  • 减少时间

使用subtract方法,传入数值和时间单位,可以实现时间的减少,再通过todate方法来实现date的更新。

代码语言:javascript代码运行次数:0运行复制
      Button("点击减少时间")
        .width("80%")
        .margin({ top: 20 })
        .onClick(() => {
          this.OneDay = dayjs(this.OneDay).subtract(1, "day").toDate();
           = dayjs(this.OneDay).format("YYYY-MM-DD");
        })
  • 时间单位
代码语言:txt复制
- 年(‘year’)
- 月(‘month’)
- 周(‘week’)
- 天(‘day’)
- 小时(‘hour’)
- 分钟(‘minute’)
- 秒(‘second’)
  • 时间比较

使用IsBefore方法可以判断day.js对象是否在另一个提供的日期时间之前。(毫秒级别)

使用IsSame方法可以判断day.js对象是否和另一个提供的时间相同。(毫秒级别)

使用IsAfter方法可以判断day.js对象是否在另一个提供的时间之后。(毫秒级别)

上面三种提供时间查询的方法可以将时间单位作为第二个参数传入,可以实现除毫秒以外的单位进行比较。例如,增加了一天,然后查询两个时间年份是否相同,返回结果是true,如果不加单位则为false。

代码语言:javascript代码运行次数:0运行复制
Button("点击测试时间相同")
        .width("80%")
        .margin({ top: 20 })
        .onClick(() => {
          let temp = dayjs(this.OneDay).subtract(1, "day");
           = `${dayjs(this.OneDay).isSame(temp, 'year')}`;
        })

插件使用


  • AdvancedFormat: 提供更多格式化选项,如季度、Unix 时间戳等。
  • RelativeTime: 用于显示时间的相对表示,如“2小时前”。
  • IsBefore, IsAfter: 用于比较日期。
  • Locale: 支持本地化,允许 Day.js 以用户所在地的语言显示日期。
  • Duration: 用于创建和操作时间段。
  • Timezone: 支持时区转换功能。
  • WeekOfYear, IsoWeek: 用于处理周数的插件,与国际标准或本地习惯相匹配。
  • MinMax: 用于获取一组日期中的最小或最大日期。
  • ToObject, ToArray: 分别将 Day.js 对象转换为 JSO 对象或数组。
  • IsToday:可以判断当前day.js对象是不是今天

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1224270.html

相关标签:无
上传时间: 2025-07-25 21:32:31
留言与评论(共有 18 条评论)
本站网友 复旦18驴
4分钟前 发表
增加了一天
本站网友 建造师考试
5分钟前 发表
'ss' 表示两位数的秒
本站网友 中国铁建山语城
24分钟前 发表
ToArray
本站网友 rak服务器
29分钟前 发表
支持本地化
本站网友 北京怡海花园
18分钟前 发表
你需要转成2024-10-2的格式
本站网友 苹果官司
1分钟前 发表
因此
本站网友 it女神
26分钟前 发表
用于获取一组日期中的最小或最大日期
本站网友 五四广场租房
18分钟前 发表
20 }) .onClick(() => { this.OneDay = dayjs(this.OneDay).subtract(1
本站网友 海南购房
9分钟前 发表
可以实现时间的增加代码语言:javascript代码运行次数:0运行复制Button("点击增加时间") .width("80%") .margin({ top
本站网友 coldfusion
11分钟前 发表
IsAfter
本站网友 爱尔兰风笛
1分钟前 发表
星期一为1'HH' 表示两位数的小时(24小时制)
本站网友 防风功效与作用
15分钟前 发表
星期天为0
本站网友 建模软件
16分钟前 发表
Date = new Date(); = dayjs(time).format();默认是 ISO8601 格式的字符串:输出 'YYYY-MM-DDTHH
本站网友 结算货币
2分钟前 发表
代码语言:javascript代码运行次数:0运行复制cd .\entry\ ohpm install dayjs查看oh-package.json5 文件
本站网友 春色满龙门
2分钟前 发表
【HarmonyOS】时间处理Dayjs 背景在项目中经常会使用要时间的格式转换
本站网友 国外游戏平台
20分钟前 发表
如“2小时前”
本站网友 白藓皮
13分钟前 发表
再通过todate方法来实现date的更新