如何在 Golang 中从 time.Now() 获取短月份名称

4
current := time.Now().UTC()
y, m, d := current.Date()
fmt.Println(y, m, d)

输出:

2009 November 10

如何获取短月份名称?例如:
2009 Nov 10
2个回答

9
使用 Format 函数和 Jan 来表示短月份名称。例如:
current := time.Now().UTC()
fmt.Println(current.Format("2006 Jan 02"))

1
你需要将该精确字符串传递给Forma,因为time包的参考时间是“2006年1月2日星期一15:04:05 -0700 MST”。 - Plato
如果我只需要月份名称,那么我需要再次拆分它。这就是为什么我认为 m.String()[:3] 更加节省的原因。已点赞。 - Shahriar
2
如果你只需要(短)月份名称,那么使用仅返回它的格式字符串,例如 fmt.Println(current.Format("Jan")),无需拆分任何内容! - ain
谢谢,我一直在寻找这个解决方案。 - Shahriar
如何以特定语言返回相同的响应? - Nurzhan Nogerbek
不幸的是,Go语言本身不支持这个功能,也许可以通过一些第三方库来实现。 - ain

5

使用 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

你是对的... 我想要使用它... 我只需要短月份名称。 - Shahriar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接