正文
时间转换工具
一、介绍
在查看原始数据时,经常需要看格式化后的个性化时间,或是时间戳等。如果不同系统中的时间格式不一样,比较规则不一样,那么每用一次就要做一轮转换。很多时候,业务接口的入参开始时间和结束时间是一个时间戳的值,这时就需要依靠外部的一些快捷站点,或是内部的 Web 站点来获取、调整时间了。首先要连上网,然后收入站点地址,等等。这显然不符合我们的极客思维,该时间转换工具是为了提高获取时间的效率。
二、关键代码
主要就是利用 time.Parse 模块格式化时间。
var calculateTimeCmd = &cobra.Command{ Use: "calc", Short: "计算所需时间", Long: "计算所需时间", Run: func(cmd *cobra.Command, args []string) { var currentTimer time.Time var layout = "2006-01-02 15:04:05" if calculateTime == "" { currentTimer = timer.GetNowTime() } else { var err error space := strings.Count(calculateTime, " ") if space == 0 { layout = "2006-01-02" } if space == 1 { layout = "2006-01-02 15:04" } currentTimer, err = time.Parse(layout, calculateTime) if err != nil { t, _ := strconv.Atoi(calculateTime) currentTimer = time.Unix(int64(t), 0) } } t, err := timer.GetCalculateTime(currentTimer, duration) if err != nil { log.Fatalf("timer.GetCalculateTime err: %v", err) } log.Printf("输出结果: %s, %d", t.Format(layout), t.Unix()) }, }
三、验证
时间工具
四、项目工程目录
最近的几个项目工程都在一处。
五、完整代码文件&最终可执行文件下载
最近的几个项目工程都在一处。
六、总结
这里主要描述一下 cobra 这个 go 语言库的使用心得:
- 初始化子命令,编写子命令里的逻辑;
- 编写完子命令之后,到根命令中进行注册;
- 子命令的子命令进行注册。
具体可看代码工程。