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

Jira转GitLab迁移脚本:如何转换time.Time相关类型?

Jira自定义Time类型转GitLab *time.Time的实现方法

因为Jira API库的Time类型是基于标准库time.Time的自定义类型(type Time time.Time),你可以通过强制转换+取地址的方式直接完成类型适配,具体步骤如下:

  1. 将Jira的自定义Time类型强制转换为标准time.Time
  2. 对转换后的标准时间取地址,得到GitLab API需要的*time.Time类型

代码示例

假设你已经从Jira获取到工单创建时间jiraCreatedAt(类型为jira.Time),转换并赋值给GitLab的CreateIssueOptions:

import (
    "time"
    "github.com/x/y/jira" // 替换为实际Jira API库路径
    "github.com/x/y/gitlab" // 替换为实际GitLab API库路径
)

// 转换Jira创建时间到GitLab所需类型
stdCreatedAt := time.Time(jiraCreatedAt)

// 构建GitLab创建工单选项
createOpts := &gitlab.CreateIssueOptions{
    CreatedAt: &stdCreatedAt,
    // 填充其他必填字段,比如Title、Description等
}

补充说明

  • 这种强制转换可行的核心原因是:Go语言允许底层类型一致的自定义类型与原类型直接转换,Jira的Time只是time.Time的自定义包装类型,底层结构完全一致。
  • 如果Jira的Time类型提供了ToTime()之类的封装方法,你也可以用该方法替代强制转换,效果完全一致。
  • 转换后的time.Time会保留原有的时区信息,GitLab API能正确解析带时区的时间值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 10:24:56