在Go语言中,我们可以非常方便地将字符串转化为时间类型,而且还支持多种时间格式的转换。本文将介绍如何使用Go语言将字符串转化为时间类型。
一、时间格式化
在进行时间转换之前,我们需要首先了解如何进行时间格式化。Go语言中,时间格式化使用时间模板来定义,时间模板中的“Mon”, “Jan”, “2”, “15:04:05”, “MST”, “2006”等等都代表了具体的时间内容,这些内容在时间模板中是有特定含义的。下面是一些常用的时间模板:
时间模板 描述 Mon 月份简写 January 月份全称 02 月份中的日,带前导零 2 月份中的日,不带前导零 15 小时(24小时制),带前导零 3:04 PM 小时(12小时制) 04 小时中的分钟,带前导零 5 小时中的分钟,不带前导零 05.000 带秒的小数点 PM 上午/下午标识符 MST 时区缩写 2006 年份,用于参考 06 年份最后两位,用于参考 01 相对于年份的月份,带前导零 Jan 相对于年份的月份,不带前导零 02 相对于月份的日,带前导零
通过上面的时间模板,我们可以定义自己需要的时间格式。
package main import ( "fmt" "time" ) func main() { t := time.Now() fmt.Println(t.Format("2006-01-02 15:04:05")) }
上述代码中,我们使用了时间模板“2006-01-02 15:04:05”来格式化时间,最终输出结果为“2022-05-17 13:23:51”。
二、字符串转时间
在Go语言中,我们可以使用time包中的Parse方法将字符串转化为时间类型。Parse方法需要两个参数,第一个参数是时间字符串,第二个参数是时间字符串的格式,两个参数都是字符串类型。
package main import ( "fmt" "time" ) func main() { str := "2022-05-17 13:23:51" layout := "2006-01-02 15:04:05" t, _ := time.Parse(layout, str) fmt.Println(t) }
上述代码中,我们将时间字符串“2022-05-17 13:23:51”以及时间模板“2006-01-02 15:04:05”传入了time.Parse方法中,最后通过fmt.Println输出了转换后的时间。
三、多种时间格式转换
在实际应用中,我们很可能会遇到多种不同的时间格式,这时候就需要支持多种时间格式转换。Go语言提供了time.ParseInLocation方法来支持多种时间格式转换,ParseInLocation方法需要三个参数,第一个参数是时间字符串,第二个参数是时间模板,第三个参数是指定时区。
package main import ( "fmt" "time" ) func main() { str1 := "2022-05-17 13:23:51" layout1 := "2006-01-02 15:04:05" str2 := "2019/01/01 12:00:00" layout2 := "2006/01/02 15:04:05" loc, _ := time.LoadLocation("Asia/Shanghai") t1, _ := time.ParseInLocation(layout1, str1, loc) fmt.Println(t1) t2, _ := time.ParseInLocation(layout2, str2, loc) fmt.Println(t2) }
上述代码中,我们使用了time.ParseInLocation方法来支持两种不同的时间格式转换,其中str1和layout1表示第一种时间格式,str2和layout2表示第二种时间格式。通过LoadLocation方法指定时区为“Asia/Shanghai”,最后通过fmt.Println输出两种不同格式的时间。
四、总结
在Go语言中,我们可以通过time.Parse和time.ParseInLocation方法将字符串转化为时间类型,并且支持多种时间格式转换。当我们需要进行时间类型的转换时,可以使用上述方法,并使用合适的时间模板进行时间格式化。
以上是golang 字符转时间的详细内容。更多信息请关注PHP中文网其他相关文章!