当前位置: 首页 > news >正文

鸿蒙三方库 | harmony-utils之DateUtil日期格式化详解

前言

日期格式化是开发中的高频需求,将Date对象转换为指定格式的字符串。@pura/harmony-utilsDateUtil封装了日期格式化方法,支持多种格式模板。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解,帮助开发者快速掌握并应用到实际项目中。

一、DateUtil格式化核心API

DateUtil提供了以下日期格式化方法:

方法说明返回类型使用场景
format(date, pattern)格式化日期string日期展示
formatNow(pattern)格式化当前时间string时间戳
parse(str, pattern)解析日期字符串Date日期解析

1.1 格式化模板符号

符号说明示例
yyyy2024
MM01-12
dd01-31
HH时(24)00-23
mm00-59
ss00-59
EEEE星期星期一

1.2 核心特性

  • 简洁易用:封装复杂逻辑为一行调用,降低使用门槛
  • 类型安全:完整的TypeScript类型定义,编译期即可发现错误
  • 异常处理:内置异常捕获机制,避免运行时崩溃
  • 灵活模板:支持自定义格式模板

1.3 常用格式模板

模板输出示例说明
yyyy-MM-dd2024-01-15日期
HH:mm:ss14:30:00时间
yyyy-MM-dd HH:mm:ss2024-01-15 14:30:00日期时间
yyyy年MM月dd日2024年01月15日中文日期

二、完整使用步骤

2.1 安装依赖

ohpminstall@pura/harmony-utils

2.2 格式化当前时间

import{DateUtil}from'@pura/harmony-utils';Button('格式化当前时间').width('100%').onClick(()=>{try{letdateStr=DateUtil.formatNow('yyyy-MM-dd HH:mm:ss');this.result=`当前时间:${dateStr}`;}catch(e){this.result='异常: '+e;}})

2.3 格式化指定日期

Button('格式化指定日期').width('100%').onClick(()=>{try{letdate=newDate(2024,0,15,14,30,0);letformatted=DateUtil.format(date,'yyyy年MM月dd日 EEEE');this.result=`格式化:${formatted}`;}catch(e){this.result='异常: '+e;}})

三、完整页面示例

import{DateUtil}from'@pura/harmony-utils';@Entry@Componentstruct DateFormatDemo{@Stateresult:string='';build(){Column({space:12}){Button('当前时间').width('100%').onClick(()=>{this.result=DateUtil.formatNow('yyyy-MM-dd HH:mm:ss');});Button('中文格式').width('100%').onClick(()=>{this.result=DateUtil.formatNow('yyyy年MM月dd日 EEEE');});Text(this.result).fontSize(14).fontColor('#333333')}.padding(16)}}

四、进阶用法

4.1 日志时间戳

import{DateUtil}from'@pura/harmony-utils';functionlogWithTimestamp(message:string):void{lettimestamp=DateUtil.formatNow('yyyy-MM-dd HH:mm:ss.SSS');console.log(`[${timestamp}]${message}`);}

4.2 文件名日期

functiongenerateDatedFilename(prefix:string,ext:string):string{letdateStr=DateUtil.formatNow('yyyyMMdd_HHmmss');return`${prefix}_${dateStr}.${ext}`;}

五、注意事项

  1. 模板大小写:MM是月,mm是分,HH是24时,hh是12时
  2. 月份从0开始:JavaScript Date的月份是0-11
  3. 时区问题:格式化使用本地时区
  4. 初始化依赖:使用前需确保AppUtil.init()已调用
  5. 解析格式:parse需要与format使用相同的模板

六、常见问题

Q1: MM和mm有什么区别?

MM是月份(01-12),mm是分钟(00-59),注意大小写。

Q2: 如何获取12小时制时间?

使用hh代替HH,如 hh:mm:ss。

Q3: formatNow每次调用都获取最新时间吗?

是的,formatNow内部获取当前时间再格式化。

Q4: parse解析失败返回什么?

解析失败通常返回null或Invalid Date。

总结

DateUtil的日期格式化方法为时间展示提供了便捷支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以利用这些方法灵活地格式化日期时间。

本文基于@pura/harmony-utils工具库,更多功能请参考官方文档与后续系列文章。

http://www.jsqmd.com/news/1280790/

相关文章:

  • Java炫彩界面开发:JSCM-Core双引擎实战
  • OpenAI宠物功能分享链接全流程解析与兼容性排查
  • 五指山卫生间漏水维修+2026年7月份价格透明实测:靠谱商家避坑全指南 - 家居避坑指南
  • Java线程池ThreadPoolExecutor核心原理与实战优化
  • 【紧急更新】ChatGPT-4o深度集成AI面试新范式:支持实时多模态微表情+声纹压力值交叉验证(附内测准入申请通道)
  • 3步搞定B站视频下载:免费获取大会员4K和充电专属内容
  • 2026年工作服定制厂家推荐:五大源头工厂综合实力深度评测 - 资讯报道
  • WordPress中国加速终极指南:文派叶子插件如何让您的网站速度提升300%
  • Blender终极贝塞尔曲线插件:Bezier Utilities完整使用指南
  • 英雄联盟智能辅助工具:League Akari 如何让游戏决策变得简单快速?
  • 2026年AI降重工具测评与学术论文AI率优化指南
  • 纽扣电池增强器NBM5100A在低功耗物联网中的应用
  • N_m3u8DL-CLI-SimpleG:告别命令行恐惧,图形化下载M3U8视频
  • Java编程入门:从环境搭建到核心语法精讲
  • 2026年毕业设计降AI攻略:毕业设计AIGC超标免费4.8元快速达标完整处理方案
  • Cocos Creator游戏开发:构建健壮声音管理模块(SoundMgr)的完整指南
  • 2026国内玻璃智能化整线解决方案公司选型参考:代表性品牌深度解析 - 全域品牌推荐
  • API接口安全:三要素与四要素身份验证详解
  • 2026天津河北区管道疏通避坑指南 旭日师傅实测反馈 - 余生黄金回收
  • 智能本体建模的落地过程
  • 2026年GEO服务商怎么排?权威梯队全解析 - 资讯报道
  • Unity渲染优化实战:从原理到性能瓶颈排查全解析
  • AI在电商领域的三大核心应用与实战策略
  • AI学术写作导航工具:从文献管理到期刊投稿
  • Wan2.2工作流:从时序一致性原理到稳定AI视频生成实战
  • 合肥2026年暑期三下乡实践活动发稿投稿指南,安徽省级网站高质量投稿主流网站代发渠道 - 资讯报道
  • NAT64技术实战:IPv6与IPv4互通的关键桥梁
  • 从Docker一键部署到稳定运维:Wukong AICRM容器化实践指南
  • 5分钟掌握B站视频下载:免费获取4K大会员画质的终极指南
  • 三亚卫生间漏水维修推荐:这几家正规靠谱机构合集(2026年7月份实测) - 捷修防水