本文主要介绍golang如何转换时间以及需要注意的地方。
golang中 Mon Jan 2 15:04:05 -0700 MST 2006
是一个特殊的时间,时间的格式化和解析都用到了。
这个时间特殊之处在于不同时间字段对应的字符串(数字)是不同的,因此可以作为时间格式的模板。
这样处理好处就是时间的表达和解析能力更加灵活,可以适应不同的时间格式。
string转time.Time
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
func Str2Time(str string) time.Time {
if tm, err := time.Parse("2006-01-02 15:04:05", str); err != nil {
return time.Now()
} else {
return tm
}
}
func Str2TimeLoc(str string) time.Time {
if tm, err := time.ParseInLocation("2006-01-02 15:04:05", str, time.Local); err != nil {
return time.Now()
} else {
return tm
}
}
|
需要注意的是 time.Parse
在缺少时区信息的时候,默认是UTC时间(零时区)。
因此为了确保是本地时区的时间,可以通过 time.ParseInLocation
解析。
time.Time转string
1
2
3
|
func Time2Str(t time.Time) string {
return t.Format("2006-01-02 15:04:05")
}
|
参考链接