我正在尝试使用此格式yyyyMMddHHmmss
格式化当前时间。
t := time.Now()
fmt.Println(t.Format("yyyyMMddHHmmss"))
即输出:
yyyyMMddHHmmss
有什么建议吗?
答案 0 :(得分:167)
使用
fmt.Println(t.Format("20060102150405"))
由于Go使用以下常量来设置日期格式,请参阅here
const (
stdLongMonth = "January"
stdMonth = "Jan"
stdNumMonth = "1"
stdZeroMonth = "01"
stdLongWeekDay = "Monday"
stdWeekDay = "Mon"
stdDay = "2"
stdUnderDay = "_2"
stdZeroDay = "02"
stdHour = "15"
stdHour12 = "3"
stdZeroHour12 = "03"
stdMinute = "4"
stdZeroMinute = "04"
stdSecond = "5"
stdZeroSecond = "05"
stdLongYear = "2006"
stdYear = "06"
stdPM = "PM"
stdpm = "pm"
stdTZ = "MST"
stdISO8601TZ = "Z0700" // prints Z for UTC
stdISO8601ColonTZ = "Z07:00" // prints Z for UTC
stdNumTZ = "-0700" // always numeric
stdNumShortTZ = "-07" // always numeric
stdNumColonTZ = "-07:00" // always numeric
)
答案 1 :(得分:11)
我为此用例https://github.com/vjeantet/jodaTime
编写了一个包date := jodaTime.Format("YYYY.MM.dd", time.Now())
fmt.Println(date)
它允许您解析和格式化时间。遵循jodaTime布局的时间:http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html
答案 2 :(得分:5)
Golang中的时间包有一些值得一看的方法。
func(时间)格式
func(t Time)格式(布局字符串)字符串 格式返回根据布局格式化的时间值的文本表示,通过显示参考时间来定义格式,
Mon Jan 2 15:04:05 -0700 MST 2006 如果它是值,将显示;它作为所需输出的一个例子。然后将相同的显示规则应用于时间值。预定义布局ANSIC,UnixDate,RFC3339和其他描述了参考时间的标准和方便的表示。有关格式和参考时间定义的更多信息,请参阅ANSIC的文档以及此软件包定义的其他常量。
来源(http://golang.org/pkg/time/#Time.Format)
我还找到了一个定义布局(http://golang.org/src/pkg/time/example_test.go)
的示例func ExampleTime_Format() {
// layout shows by example how the reference time should be represented.
const layout = "Jan 2, 2006 at 3:04pm (MST)"
t := time.Date(2009, time.November, 10, 15, 0, 0, 0, time.Local)
fmt.Println(t.Format(layout))
fmt.Println(t.UTC().Format(layout))
// Output:
// Nov 10, 2009 at 3:00pm (PST)
// Nov 10, 2009 at 11:00pm (UTC)
}
答案 3 :(得分:4)
当您找到“ golang当前时间格式”时,此问题会出现在Google搜索的顶部,因此,对于所有想要使用其他格式的人,请记住您可以随时致电:
t := time.Now()
t.Year()
t.Month()
t.Day()
t.Hour()
t.Minute()
t.Second()
例如,要获取当前日期时间为“ YYYY-MM-DDTHH:MM:SS”(例如2019-01-22T12:40:55),可以将这些方法与fmt.Sprintf一起使用:
t := time.Now()
formatted := fmt.Sprintf("%d-%02d-%02dT%02d:%02d:%02d",
t.Year(), t.Month(), t.Day(),
t.Hour(), t.Minute(), t.Second())
一如既往,请记住文档是最好的学习资源:https://golang.org/pkg/time/
答案 4 :(得分:0)
import("time")
layout := "2006-01-02T15:04:05.000Z"
str := "2014-11-12T11:45:26.371Z"
t, err := time.Parse(layout, str)
if err != nil {
fmt.Println(err)
}
fmt.Println(t)
给予:
>> 2014-11-12 11:45:26.371 +0000 UTC