为了账号安全,请及时绑定邮箱和手机立即绑定

在 golang 中解析日期和时间的最佳方式

在 golang 中解析日期和时间的最佳方式

Go
萧十郎 2021-09-09 14:01:00
我有很多日期时间值作为字符串传入我的 golang 程序。格式是固定的位数:2006/01/02 15:04:05我开始用time.Parse函数解析这些日期const dtFormat = "2006/01/02 15:04:05"func ParseDate1(strdate string) (time.Time, error) {    return time.Parse(dtFormat, strdate)}但是我的程序有一些性能问题。因此,考虑到我的格式是固定的,我尝试通过编写自己的解析函数来调整它:func ParseDate2(strdate string) (time.Time, error) {    year, _ := strconv.Atoi(strdate[:4])    month, _ := strconv.Atoi(strdate[5:7])    day, _ := strconv.Atoi(strdate[8:10])    hour, _ := strconv.Atoi(strdate[11:13])    minute, _ := strconv.Atoi(strdate[14:16])    second, _ := strconv.Atoi(strdate[17:19])    return time.Date(year, time.Month(month), day, hour, minute, second, 0, time.UTC), nil}最后我在这两个函数之上做了一个基准测试,得到了以下结果: BenchmarkParseDate1      5000000               343 ns/op BenchmarkParseDate2     10000000               248 ns/op这是性能提高了 27%。在性能方面有没有更好的方法可以改善这种日期时间解析?
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 311 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信