【问题标题】:How to get short month name from time.Now() in Golang如何从 Golang 中的 time.Now() 获取短月份名称
【发布时间】:2016-08-12 10:13:08
【问题描述】:
current := time.Now().UTC()
y, m, d := current.Date()
fmt.Println(y, m, d)

输出:

2009 November 10

如何获得短月份名称?喜欢:

2009 Nov 10

【问题讨论】:

    标签: go time


    【解决方案1】:

    使用Format 函数和Jan 作为短月份名称,即

    current := time.Now().UTC()
    fmt.Println(current.Format("2006 Jan 02"))
    

    【讨论】:

    • 您需要将确切的字符串传递给 Forma,因为时间包的参考时间是“Mon Jan 2 15:04:05 -0700 MST 2006”
    • 如果我只需要月份名称,那么我需要再次拆分它。这就是为什么我实际上认为m.String()[:3] 这个更便宜.. 投票赞成
    • @AerofoilKite 如果您只需要(短)月份名称,则使用仅返回它的格式字符串,即fmt.Println(current.Format("Jan")),无需拆分任何内容!
    • 谢谢,我正在寻找这个解决方案。
    • 如何以特定语言返回相同的响应?
    【解决方案2】:

    使用time.Now().UTC().Format("Jan")m.String()[:3] 获取短月份名称:

    current := time.Now().UTC()
    y, m, d := current.Date()
    fmt.Println(y, m.String()[:3], d)
    

    你也可以使用fmt.Sprintf("%d %s %02d", t.Year(), t.Month().String()[:3], t.Day())
    像这个工作示例代码:

    package main
    
    import "fmt"
    import "time"
    
    func main() {
        fmt.Println(time.Now().UTC().Format("Jan")) // Aug
    
        t := time.Now()
        str := fmt.Sprintf("%d %s %02d", t.Year(), t.Month().String()[:3], t.Day())
        fmt.Println(str) // 2016 Aug 03
    }
    

    输出:

    Aug 
    2016 Aug 03
    

    【讨论】:

    • 你说得对...我想用这个..我只需要简短的月份名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    • 2015-11-29
    • 1970-01-01
    • 2017-08-15
    • 2011-03-02
    相关资源
    最近更新 更多