You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用RTC(EWM) Java API获取快照的日期?

使用Java API获取RTC(EWM)快照的日期

核心逻辑

RTC中的快照对应ISnapshot接口,它继承自IAuditable,因此可以通过快照管理类获取实例后直接调用日期相关方法;若需要查看快照的历史版本日期,逻辑和工作项类似,借助IItemManager处理审计句柄即可。

代码实现

1. 获取快照的创建/最新修改日期

先通过ISnapshotManager获取目标快照实例,再调用内置方法拿到日期:

// 获取SnapshotManager客户端实例
ISnapshotManager snapshotManager = (ISnapshotManager) teamRepository.getClientLibrary(ISnapshotManager.class);
// 替换为实际的快照ID
String targetSnapshotId = "your-snapshot-id";
// 获取完整快照对象(使用FULL_PROFILE加载所有属性)
ISnapshot snapshot = snapshotManager.findSnapshotById(targetSnapshotId, ISnapshot.FULL_PROFILE, monitor);

// 输出核心日期信息
System.out.println("快照创建日期: " + snapshot.created());
System.out.println("快照最后修改日期: " + snapshot.modified());

2. 获取快照的历史版本日期

如果需要追溯快照的所有修改历史,可复用工作项历史查询的核心逻辑,仅需替换对象类型:

IItemManager itemManager = teamRepository.itemManager();
// 快照本身实现了IAuditable,直接转换为审计句柄
List<?> historyStateHandles = itemManager.fetchAllStateHandles((IAuditableHandle) snapshot.getItemHandle(), monitor);

System.out.println("快照历史版本修改记录:");
// 倒序遍历历史(从最新版本到最早版本)
for (int i = historyStateHandles.size() - 1; i >= 0; i--) {
    IAuditableHandle auditHandle = (IAuditableHandle) historyStateHandles.get(i);
    // 获取历史版本的完整快照实例
    ISnapshot historicalSnapshot = (ISnapshot) itemManager.fetchCompleteState(auditHandle, monitor);
    System.out.println("历史版本修改日期: " + historicalSnapshot.modified());
}

和工作项代码的适配差异

  • 工作项通过IWorkItemClient获取实例,快照需使用ISnapshotManager
  • 核心对象类型从IWorkItem替换为ISnapshot,但两者均实现IAuditable接口,因此历史查询的核心流程完全复用

内容的提问来源于stack exchange,提问作者angelo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 13:47:22