如何使用yyyyMMddHHmmss格式格式化当前时间?

时间:2013-11-27 04:45:28

标签: time go format timestamp

我正在尝试使用此格式yyyyMMddHHmmss格式化当前时间。

t := time.Now()
fmt.Println(t.Format("yyyyMMddHHmmss"))

即输出:

yyyyMMddHHmmss

有什么建议吗?

5 个答案:

答案 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