Closed
feat: 改进时间显示格式,支持相对时间 #128
aflyingtoAdd on  Apr 5Closed at  Apr 7
aflyingtoCollaborators
Apr 5 Create

问题描述

当前时间显示格式固定为 2006-01-02 15:04,对于用户来说不够友好。

建议方案

  1. 添加 --time-format 选项
  2. 支持相对时间显示(如 "2 hours ago")

示例

# 默认相对时间
$ gc issue list
#123  open   修复登录问题  (2 hours ago)

# 绝对时间
$ gc issue list --time-format absolute
#123  open   修复登录问题  (2026-04-05 18:00)

# 自定义格式
$ gc issue list --time-format "2006-01-02"
#123  open   修复登录问题  (2026-04-05)

实现方案

func FormatTime(t time.Time, format string) string {
    switch format {
    case "relative":
        return humanize.Time(t)
    case "absolute":
        return t.Format("2006-01-02 15:04")
    default:
        return t.Format(format)
    }
}

推荐库

  • github.com/dustin/go-humanize - 相对时间

优先级

中

likedislike
AaflyingtoCollaborators
Apr 5 Added label: status/verified,type/feature
AaflyingtoCollaborators
Apr 7 Associated pull request
aflyingtoCollaborators
Apr 7 Comments:

阶段记录

  • 阶段: ready-for-review
  • 结论: PR #95 已为 gc issue list、gc issue view、gc pr view 增加 --time-format absolute|relative,并补齐帮助、文档和错误路径验证;issue 128 进入独立执行主体评审。
  • 证据:
    • 关联 PR: !95
    • 提交: bce2821 feat: complete issue output contracts and view details
    • 验证: go test ./...、go build -o ./gc ./cmd/gc
    • 实际命令: ./gc issue list -R infra-test/gctest1 --limit 1 --time-format relative、./gc issue view 7 -R infra-test/gctest1 --time-format relative、./gc pr view 1 -R infra-test/gctest1 --time-format relative
    • 错误路径: ./gc issue view 1 --time-format yaml、./gc pr view 1 -R infra-test/gctest1 --time-format yaml 返回稳定用法错误
  • 下一步: 等待独立执行主体评审;如需要支持任意自定义 layout,再单独设计新的输入契约。

开发进度

  • 根因: 现有时间展示固定为绝对时间,且 issue/pr view 与 list 没有统一的文本时间策略。
  • 主要修改: 引入共享时间格式解析与渲染,统一 absolute|relative 语义。
  • 测试: go test ./...
  • 实际命令验证: 同上
  • 安全影响: 无认证、权限或危险写路径变更
  • 风险或未覆盖项: 本次未支持 issue 提案中的任意自定义时间 layout,只保留 absolute|relative 两个稳定值。
  • 关联 PR: !95
likedislike
AaflyingtoCollaborators
Apr 7 Removed label: status/verified
AaflyingtoCollaborators
Apr 7 Added label: status/ready-for-review
AaflyingtoCollaborators
Apr 7 Added label: scope/issue
AaflyingtoCollaborators
Apr 7 Close issue
AaflyingtoCollaborators
Apr 7 Added label: status/merged
AaflyingtoCollaborators
Apr 7 Removed label: status/ready-for-review
aflyingtoCollaborators
Apr 7 Comments:

已合入主干

  • 关联 PR: !95
  • 合并时间: 2026-04-07 12:39 +08:00
  • 当前状态: 已合入 main,issue 关闭,标签已更新为 status/merged

说明: 本次交付支持 absolute|relative 两种稳定时间格式,未扩展 issue 中提到的任意自定义 layout。

likedislike
aflyingtoCollaborators
May 1 Comments:

作者自检

改动内容摘要

.goreleaser.yaml: use: github → use: git

风险评估

  • 风险等级: low
  • 理由:仅配置修改,不影响代码功能

状态

  • status/self-checked
likedislike
aflyingtoCollaborators
May 1 Comments:

多角色独立执行主体评审汇总

评审路径

docs-only PR 简化评审(仅配置文件)

评审结论

评审角色 结论
文档审查 approved
安全审查 approved

总体评审结论

  • approved
likedislike