鸿蒙三方库 | harmony-utils之DateUtil日期比较与判断详解
前言日期比较和判断在日程管理、倒计时、有效期检查等场景中广泛使用。pura/harmony-utils的DateUtil封装了日期比较和判断方法。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解帮助开发者快速掌握并应用到实际项目中。一、DateUtil比较核心APIDateUtil提供了以下日期比较方法方法说明返回类型使用场景isBefore(date1, date2)date1是否在date2之前boolean过期检查isAfter(date1, date2)date1是否在date2之后boolean生效检查isSameDay(date1, date2)是否同一天boolean日期比较isToday(date)是否今天boolean今日标记isWeekend(date)是否周末boolean工作日判断isWorkday(date)是否工作日boolean排班判断1.1 核心特性简洁易用封装复杂逻辑为一行调用降低使用门槛类型安全完整的TypeScript类型定义编译期即可发现错误异常处理内置异常捕获机制避免运行时崩溃语义清晰方法名直观表达比较含义1.2 比较方法对照方法示例结果说明isBefore1月1日 vs 6月1日true前者在后isAfter6月1日 vs 1月1日true后者在先isSameDay同一天true同一天isToday今天true今日判断二、完整使用步骤2.1 安装依赖ohpminstallpura/harmony-utils2.2 日期比较import{DateUtil}frompura/harmony-utils;Button(日期比较).width(100%).onClick((){try{letd1newDate(2024,0,1);letd2newDate(2024,5,1);this.resultd1 d2:${DateUtil.isBefore(d1,d2)}\nd1 d2:${DateUtil.isAfter(d1,d2)};}catch(e){this.result异常: e;}})2.3 今天判断Button(今天判断).width(100%).onClick((){try{lettodaynewDate();letisTodayDateUtil.isToday(today);letisWeekendDateUtil.isWeekend(today);this.result是否今天:${isToday}\n是否周末:${isWeekend};}catch(e){this.result异常: e;}})![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a6990fffa7bd4df899d2174827a4f00d.png#pic_center) ## 三、完整页面示例typescriptimport{DateUtil}frompura/harmony-utils;EntryComponentstruct DateCompareDemo{Stateresult:string;build(){Column({space:12}){Button(日期比较).width(100%).onClick((){letd1newDate(2024,0,1);letd2newDate();this.resultd1在d2前:${DateUtil.isBefore(d1,d2)};});Button(今日判断).width(100%).onClick((){this.result今天:${DateUtil.isToday(newDate())}\n周末:${DateUtil.isWeekend(newDate())};});Text(this.result).fontSize(14).fontColor(#333333)}.padding(16)}}四、进阶用法4.1 有效期检查import{DateUtil,ToastUtil}frompura/harmony-utils;functioncheckExpiry(expiryDate:Date):boolean{if(DateUtil.isBefore(expiryDate,newDate())){ToastUtil.show(已过期);returnfalse;}returntrue;}4.2 工作日判断functiongetWorkdayLabel(date:Date):string{returnDateUtil.isWorkday(date)?工作日:休息日;}五、注意事项时间部分isSameDay只比较日期忽略时间部分时区影响比较基于本地时区周末定义isWeekend通常指周六和周日初始化依赖使用前需确保AppUtil.init()已调用节假日isWorkday不包含法定节假日判断六、常见问题Q1: isSameDay忽略时间部分吗是的isSameDay只比较年月日忽略时分秒。Q2: isWeekend包含周五吗不包含isWeekend通常只判断周六和周日。Q3: isWorkday考虑法定节假日吗不考虑isWorkday仅判断周一到周五法定节假日需额外处理。Q4: isBefore对相同日期返回什么返回false因为相同日期既不在之前也不在之后。总结DateUtil的日期比较和判断方法为日期逻辑提供了便捷支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以利用这些方法实现有效期检查、工作日判断等功能。本文基于pura/harmony-utils工具库更多功能请参考官方文档与后续系列文章。

相关新闻

AzurLaneAutoScript技术架构解析:构建高效碧蓝航线自动化系统的完整指南

AzurLaneAutoScript技术架构解析:构建高效碧蓝航线自动化系统的完整指南

AzurLaneAutoScript技术架构解析:构建高效碧蓝航线自动化系统的完整指南 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScri…

2026/7/28 8:40:06 阅读更多 →
苹果触控板Windows驱动终极指南:5分钟实现原生级触控体验

苹果触控板Windows驱动终极指南:5分钟实现原生级触控体验

苹果触控板Windows驱动终极指南:5分钟实现原生级触控体验 【免费下载链接】mac-precision-touchpad Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad 项目地址: https://gitcode.com/gh_mirrors/ma/mac-precision-touchpad…

2026/7/28 8:40:06 阅读更多 →
二分查找算法原理、实现与优化全解析

二分查找算法原理、实现与优化全解析

1. 二分查找算法核心原理剖析 二分查找(Binary Search)作为计算机科学中最基础且高效的搜索算法之一,其核心思想源于分治策略。这个看似简单的算法在实际应用中却蕴含着精妙的设计哲学——每次比较都将搜索范围减半,使得时间复杂度…

2026/7/28 8:40:06 阅读更多 →

最新新闻

gin pprof middleware入门教程:从安装到生成CPU性能报告的完整流程

gin pprof middleware入门教程:从安装到生成CPU性能报告的完整流程

gin pprof middleware入门教程:从安装到生成CPU性能报告的完整流程 【免费下载链接】pprof gin pprof middleware 项目地址: https://gitcode.com/gh_mirrors/ppr/pprof gin pprof middleware是一款专为Gin框架设计的性能分析中间件,能够帮助开发…

2026/7/28 9:00:16 阅读更多 →
如何用3步开启群体智能预测引擎,让复杂决策变得简单

如何用3步开启群体智能预测引擎,让复杂决策变得简单

如何用3步开启群体智能预测引擎,让复杂决策变得简单 【免费下载链接】MiroFish A Simple and Universal Swarm Intelligence Engine, Predicting Anything. 简洁通用的群体智能引擎,预测万物 项目地址: https://gitcode.com/GitHub_Trending/mi/MiroFi…

2026/7/28 9:00:16 阅读更多 →
从零构建16位RISC CPU:揭秘计算机核心运行原理与硬件实现

从零构建16位RISC CPU:揭秘计算机核心运行原理与硬件实现

1. 项目缘起:从“知其然”到“知其所以然”几年前,我在调试一个嵌入式项目时,遇到了一个极其诡异的Bug:一段看似简单的循环代码,在某些特定条件下执行时间会莫名其妙地延长数倍。我排查了所有软件层面的可能性&#xf…

2026/7/28 9:00:16 阅读更多 →
AcerolaFX:为《最终幻想XIV》打造的模块化HDR后期处理管线

AcerolaFX:为《最终幻想XIV》打造的模块化HDR后期处理管线

AcerolaFX:为《最终幻想XIV》打造的模块化HDR后期处理管线 【免费下载链接】AcerolaFX A suite of GShade shaders for Final Fantasy XIV 项目地址: https://gitcode.com/gh_mirrors/ac/AcerolaFX AcerolaFX是一个专为《最终幻想XIV》设计的完全模块化、高度…

2026/7/28 9:00:16 阅读更多 →
告别过去还是拥抱回忆?ex.skill版本管理与/move-on命令使用指南

告别过去还是拥抱回忆?ex.skill版本管理与/move-on命令使用指南

告别过去还是拥抱回忆?ex.skill版本管理与/move-on命令使用指南 【免费下载链接】ex-skill 致你忘不掉的那个TA,你们干大模型都是码圣 Its giving rebirth era. Welcome to Digital Life 1.0. 🫶 项目地址: https://gitcode.com/gh_mirrors…

2026/7/28 9:00:16 阅读更多 →
Codex代码生成模型技术解析与本地部署实战指南

Codex代码生成模型技术解析与本地部署实战指南

如果你最近关注AI编程助手的发展,可能会注意到一个现象:虽然GitHub Copilot已经相当普及,但OpenAI联合创始人Greg Brockman最近却公开分享了他使用Codex的真实体验。这让人不禁思考:在Copilot已经如此成熟的今天,为什么…

2026/7/28 8:59:15 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻