我有很多日期时间值作为字符串传入我的 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
提交
取消