时间分隔/格式化(TimeSeparator)

时间分隔/格式化:TimeSeparator 是 IDL 定义的跨端 UI 组件,props / events / behaviors 在各平台语义一致。本页给出契约属性、事件、渲染行为、数据源与 Native (C ABI) 端绑定/示例。

契约属性(props)​

属性类型必填说明
timestampint64是时间戳(epoch 毫秒)
nowint64否参照时间(便于测试注入;默认当前时间)

事件​

该组件未声明事件;交互通过属性和宿主回调完成。

渲染行为​

  • 当天 HH:mm;昨天“昨天 HH:mm”;7 天内“周X HH:mm”;更早 YYYY-MM-DD HH:mm

数据源​

未在 IDL 声明 dataSource;由宿主从 IMLib 拉取(getConversationList / getHistoryMessages / MESSAGES / CONVERSATION 事件)。

依赖边界

组件不直连网络与数据库:会话/消息由宿主从 IMLib 拉取后传入,组件只做排序、角标、格式化与渲染。

平台绑定​

项值
公开符号 / 签名im_kit_format_time(int64_t timestamp_ms, int64_t now_ms, char* out, size_t out_len)
导出列表包含—
UI 框架view-model / 格式化 / 角标 / 状态计算层(不访问网络,不渲染 UI)

使用示例​

C(view-model 层)
char label[64];
im_kit_format_time(timestamp_ms, now_ms, label, sizeof(label)); /* 当天 HH:mm / 昨天 / 周X / 日期 */

int need = im_kit_time_separator_needed(prev_ms, next_ms); /* 首条或间隔 > 5 分钟 */
im_kit_set_utc_offset_minutes(480); /* 可选:覆盖时区偏移 */

相关文档​