Flutter for OpenHarmony: Flutter 三方库 duration 让鸿蒙应用的时间长度处理变得灵动而具人情味(语义化时长专家)

Flutter for OpenHarmony: Flutter 三方库 duration 让鸿蒙应用的时间长度处理变得灵动而具人情味(语义化时长专家)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net

在这里插入图片描述

前言

在进行 OpenHarmony 的 UI 开发时,我们经常需要处理“时长(Duration)”:

  1. 视频播放器:如何将 Duration(seconds: 3661) 显示为漂亮的 01:01:01
  2. 任务管理:如何让用户输入 2d 4h 就能自动识别为 2 天 4 小时?
  3. 社交动态:如何精确显示为“剩余 5 小时 30 分钟”而不是干巴巴的数字?

duration 软件包正是为了解决这些“最后 1 公里”的显示与解析问题。它弥补了 Dart 原生 Duration 类在格式化方面的空白,为鸿蒙应用提供了专业的语义化时长处理能力。


一、时长语义化转换模型

该库支持在“机器时间(ms)”、“短文本(2h 3m)”与“长描述(2 hours …)”之间自由切换。

Duration(7200s)

duration 格式化器

'2h 0m' (精简)

'2 hours' (语义)

'1d 12h'

duration 解析器


二、核心 API 实战

2.1 将 Duration 转为漂亮的字符串

import'package:duration/duration.dart';voidformatDuration(){final d =Duration(hours:2, minutes:34, seconds:12);// 💡 极简输出: 2:34:12 (非常适合鸿蒙视频进度条)print(printDuration(d, abbreviated:true, spacer:''));// 💡 全称输出: 2 hours 34 minutes 12 secondsprint(printDuration(d, locale:DurationLocale.fromLanguageCode('zh')!));}
在这里插入图片描述

2.2 字符串解析为 Duration

voidparseInput(){// 💡 直接解析用户输入的文字Duration d =parseDuration('2h 45m');print('总分钟数: ${d.inMinutes}');// 165}
在这里插入图片描述

三、常见应用场景

3.1 鸿蒙运动健康应用的“累计时长”展示

在统计用户本周的运动总时长(如 15000 秒)时,通过 duration 库自动转换为“4 小时 10 分钟”,并能根据鸿蒙系统的多国语言设置,自动适配为英语、阿拉伯语等对应的语义格式,提升应用的国际化档次。

在这里插入图片描述

3.2 鸿蒙智能家居的“延时关机”配置

用户在鸿蒙平板上设置空调“3h 30min”后关机。利用该库强大的解析能力,开发者无需编写复杂的正则表达式,一行脚本即可将其转化为 Dart 原生 Duration,直接对接鸿蒙系统的计时器服务。

在这里插入图片描述

四、OpenHarmony 平台适配

4.1 适配鸿蒙的本地化语言包

💡 技巧duration 库支持多语言。在进行鸿蒙出海开发时,建议通过 DurationLocale 注入对应的本地化翻译。特别是在处理波斯语、日语等具有特殊计数语序的语言时,利用该库内置的国际化算法,能保证鸿蒙应用显示的时长语法绝对无误,避免“5 小时 3 分”被错显示为“3 分 5 小时”的尴尬。

4.2 适配鸿蒙多分辨率的“简繁”控制

在鸿蒙智能手表的微小屏幕上,通过 abbreviated: true 输出极简形式(如 4m 3s);而在鸿蒙平板或电视的大屏上,通过 printDuration 输出全称语义描述。通过该库的灵活参数调优,你可以实现一套代码、多端感知、最优展示。


五、完整实战示例:鸿蒙工程“任务倒计时”渲染器

本示例展示如何生成一个符合中文审美的高级时长描述。

import'package:duration/duration.dart';classOhosTimerFormatter{/// 💡 将秒数转化为鸿蒙精美 UI 可用的时长标签StringformatForOhos(int seconds){final d =Duration(seconds: seconds);print('🎨 正在为鸿蒙页面美化时间载荷...');returnprintDuration( d, delimiter:' ',// 元素间的分隔符 conjugation:'又',// 最后两个元素的连接词 abbreviated:false,// 是否简写 locale:DurationLocale.fromLanguageCode('zh')!,);}}voidmain(){final formatter =OhosTimerFormatter();// 模拟输出:1 小时 10 分钟 又 5 秒print('任务剩余: ${formatter.formatForOhos(4205)}');}
在这里插入图片描述

六、总结

duration 软件包是 OpenHarmony 开发者打理“时间美学”的专业工具。它将冰冷的毫秒数值转化为带有温度、符合人类自然语言习惯的描述。在构建追求极致用户体验、追求极致多端适配能力的鸿蒙原生应用生态中,引入这样一套精细化的时长管理逻辑,能让您的应用交互体验在细微处见真章。

Read more

解锁DeepSeek潜能:Docker+Ollama打造本地大模型部署新范式

解锁DeepSeek潜能:Docker+Ollama打造本地大模型部署新范式

🐇明明跟你说过:个人主页 🏅个人专栏:《深度探秘:AI界的007》 🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、什么是Docker 2、什么是Ollama 二、准备工作 1、操作系统 2、镜像准备 三、安装 1、安装Docker 2、启动Ollama 3、拉取Deepseek大模型 4、启动Deepseek  一、引言 1、什么是Docker Docker:就像一个“打包好的App” 想象一下,你写了一个很棒的程序,在自己的电脑上运行得很好。但当你把它发给别人,可能会遇到各种问题: * “这个软件需要 Python 3.8,但我只有 Python 3.6!

By Ne0inhk
深挖 DeepSeek 隐藏玩法·智能炼金术2.0版本

深挖 DeepSeek 隐藏玩法·智能炼金术2.0版本

前引:屏幕前的你还在AI智能搜索框这样搜索吗?“这道题怎么写”“苹果为什么红”“怎么不被发现翘课” ,。看到此篇文章的小伙伴们!请准备好你的思维魔杖,开启【霍格沃茨模式】,看我如何更新秘密的【知识炼金术】,我们一起来解锁更加刺激的剧情!友情提醒:《《《前方高能》》》 目录 在哪使用DeepSeek 如何对提需求  隐藏玩法总结 几个高阶提示词 职场打工人 自媒体创作 电商实战 程序员开挂 非适用场地 “服务器繁忙”如何解决 (1)硅基流动平台 (2)Chatbox + API集成方案 (3)各大云平台 搭建个人知识库 前置准备 下载安装AnythingLLM 选择DeepSeek作为AI提供商 创作工作区 导入文档 编辑  编辑 小编寄语 ——————————————————————————————————————————— 在哪使用DeepSeek 我们解锁剧情前,肯定要知道在哪用DeepSeek!咯,为了照顾一些萌新朋友,它的下载方式我放在下面了,拿走不谢!  (1)

By Ne0inhk
【AI大模型】DeepSeek + 通义万相高效制作AI视频实战详解

【AI大模型】DeepSeek + 通义万相高效制作AI视频实战详解

目录 一、前言 二、AI视频概述 2.1 什么是AI视频 2.2 AI视频核心特点 2.3 AI视频应用场景 三、通义万相介绍 3.1 通义万相概述 3.1.1 什么是通义万相 3.2 通义万相核心特点 3.3 通义万相技术特点 3.4 通义万相应用场景 四、DeepSeek + 通义万相制作AI视频流程 4.1 DeepSeek + 通义万相制作视频优势 4.1.1 DeepSeek 优势 4.1.2 通义万相视频生成优势 4.2

By Ne0inhk
【DeepSeek微调实践】DeepSeek-R1大模型基于MS-Swift框架部署/推理/微调实践大全

【DeepSeek微调实践】DeepSeek-R1大模型基于MS-Swift框架部署/推理/微调实践大全

系列篇章💥 No.文章01【DeepSeek应用实践】DeepSeek接入Word、WPS方法详解:无需代码,轻松实现智能办公助手功能02【DeepSeek应用实践】通义灵码 + DeepSeek:AI 编程助手的实战指南03【DeepSeek应用实践】Cline集成DeepSeek:开源AI编程助手,终端与Web开发的超强助力04【DeepSeek开发入门】DeepSeek API 开发初体验05【DeepSeek开发入门】DeepSeek API高级开发指南(推理与多轮对话机器人实践)06【DeepSeek开发入门】Function Calling 函数功能应用实战指南07【DeepSeek部署实战】DeepSeek-R1-Distill-Qwen-7B:本地部署与API服务快速上手08【DeepSeek部署实战】DeepSeek-R1-Distill-Qwen-7B:Web聊天机器人部署指南09【DeepSeek部署实战】DeepSeek-R1-Distill-Qwen-7B:基于vLLM 搭建高性能推理服务器10【DeepSeek部署实战】基于Ollama快速部署Dee

By Ne0inhk