一、时间字符串转时间对象
一般在获取到时间字符串,需要将时间字符串格式化为 Golang 的 time.Time
对象的时候,通常有 2 个函数,分别是:
time.Parse(layout, value string) (Time, error)
time.ParseInLocation(layout, value string, loc *Location) (Time, error)
两个函数相比,不一样的地方在于,Parse()
函数解析的时候,会默为 UTC 时间,获取的 time.Time
对象转换为 Unix()
对象后,会比当前时间多 8 小时。
tm, err := time.Parse( "2006-01-02 15:04:05", s ) // 转换后的时间,如果再转换为 Unix 时间,需要减去 8 小时
如果解析来源是 GMT 的时间的话,最好使用 ParseInLocation()
,并指定Location
为 time.Local
,比如:
tm, err = time.ParseInLocation( "2006-01-02 15:04:05", s, time.Local ) // 转换后的时间如果再转换为 Unix 时间,不需要处理。
二、时间对象转字符串
package main
import (
"fmt"
"time"
)
func main() {
t := time.Now()
fmt.Println(t.Format("2006-01-02 15:04:05"))
}