Golang time.Month.String()函数及示例
在Golang中,time.Month.String()是一个很常用的函数,它可以将月份转化为对应的字符串表示。在实际开发中,我们经常需要用到时间相关的操作,而时间的表示方法有多种,如时间戳、日期字符串等。其中时间戳最为常见,但有时候我们需要将时间戳转化为其他形式,如月份的字符串表示。这时候,time.Month.String()就可以派上用场。
time.Month.String() 函数的基本用法
time.Month类型的变量m有一个String()方法,调用该方法可以将m表示的月份转化为字符串表示。下面是time.Month.String()函数最基本的用法示例:
package main
import (
"fmt"
"time"
)
func main() {
m := time.January
mStr := m.String()
fmt.Println(mStr) // "January"
}
在上面的示例中,我们定义了一个m变量,它的类型是time.Month,表示1月份。然后我们调用m的String()方法,将1月份转化为字符串”January”。
time.Month枚举值从January到December,对应1月份到12月份,如果使用错了Month值,比如下面这种情况:
package main
import (
"fmt"
"time"
)
func main() {
m := time.March
mStr := m.String()
fmt.Println(mStr) // "March"
}
虽然我们将m指定为time.March,但是输出的结果是”March”,也就是时间的表示依然是正确的。
在时间格式化时使用time.Month.String()
通常我们使用time包提供的time.Time类型表示时间,如果是将time.Time类型的时间格式化输出为字符串,那么就需要用到time.Time.Format()函数。Format()函数的格式如下:
func (t Time) Format(layout string) string
其中layout参数表示格式布局,是一个字符串,具体内容可以参考官方文档,这里只讲time.Month.String()函数的使用。
如果某个时间的月份是time.Month类型的,要将其使用”January”这样的字符串代表,可以在layout字符串中使用特定的日期格式表示:
Month Month January, February, …
下面是一个示例:
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
fmt.Println(now.Format("2006-Jan-02")) // "2022-Sep-12"
fmt.Println(now.Month().String()) // "September"
fmt.Println(now.Format("2006-Jan-02 15:04:05 -0700 MST")) // "2022-Sep-12 09:52:30 +0800 CST"
fmt.Println(now.Month().String()) // "September"
}
在上面的示例中,我们同时输出了time.Time类型的时间格式化字符串和time.Month类型的月份字符串,可以看到它们的输出是相互独立的,使用time.Month.String()函数并不会影响time.Time.Format()函数的输出。
结论
time.Month.String()函数在表示时间中很有用,它可以将1到12对应的Month枚举值转化为对应的字符串表示,无需记忆英文单词的缩写,更加直观。在使用time.Time.Format()函数格式化时间时,也可以使用Go语言指定的date格式中的Month来表示月份,将Month枚举值转化为字符串表示可以使用time.Month.String()函数,这样就不用担心写错月份的单词缩写了。