How to Format Current Time Using a yyyyMMddHHmmss Format?
I'm Trying to Format the Current Time Using This Format yyyyMMddHHmmss. T: = Time. Now() Fmt. Println(T. Format("Yyyymmddhhmmss")) That Is Outputting...
I'm trying to format the current time using this format yyyyMMddHHmmss.
t := time.Now()
fmt.Println(t.Format("yyyyMMddHHmmss"))
That is outputting:
yyyyMMddHHmmss
Any suggestions?
6 Answers
Use
fmt.Println(t.Format("20060102150405"))
as Go uses following constants to format date,refer 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
stdFracSecond0 = ".0", ".00" // trailing zeros included
stdFracSecond9 = ".9", ".99" // trailing zeros omitted
)
This question comes in top of Google search when you find "golang current time format" so, for all the people that want to use another format, remember that you can always call to:
t := time.Now()
t.Year()
t.Month()
t.Day()
t.Hour()
t.Minute()
t.Second()
For example, to get current date time as "YYYY-MM-DDTHH:MM:SS" (for example 2019-01-22T12:40:55) you can use these methods with 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())
As always, remember that docs are the best source of learning:
Option 1: Go standard library
t.Format("20060102150405")
| Unit | Golang Layout | Examples | Note |
|---|---|---|---|
| Year | 06 | 21, 81, 01 | |
| Year | 2006 | 2021, 1981, 0001 | |
| Month | January | January, February, December | |
| Month | Jan | Jan, Feb, Dec | |
| Month | 1 | 1, 2, 12 | |
| Month | 01 | 01, 02, 12 | |
| Day | Monday | Monday, Wednesday, Sunday | |
| Day | Mon | Mon, Wed, Sun | |
| Day | 2 | 1, 2, 11, 31 | |
| Day | 02 | 01, 02, 11, 31 | zero padded day of the month |
| Day | _2 | ⎵1, ⎵2, 11, 31 | space padded day of the month |
| Day | 002 | 001, 002, 011, 031, 145, 365, 366 | zero padded day of the year |
| Day | __2 | ⎵⎵1, ⎵⎵2, ⎵11, ⎵31, 365, 366 | space padded day of the year |
| Part of day | PM | AM, PM | |
| Part of day | pm | am, pm | |
| Hour 24h | 15 | 00, 01, 12, 23 | |
| Hour 12h | 3 | 1, 2, 12 | |
| Hour 12h | 03 | 01, 02, 12 | |
| Minute | 4 | 0, 4 ,10, 35 | |
| Minute | 04 | 00, 04 ,10, 35 | |
| Second | 5 | 0, 5, 25 | |
| Second | 05 | 00, 05, 25 | |
| 10-1 to 10-9 s | .0 .000000000 | .1, .199000000 | Trailing zeros included |
| 10-1 to 10-9 s | .9 .999999999 | .1, .199 | Trailing zeros omitted |
| Time zone | MST | UTC, MST, CET | |
| Time zone | Z07 | Z, +08, -05 | Z is for UTC |
| Time zone | Z0700 | Z, +0800, -0500 | Z is for UTC |
| Time zone | Z070000 | Z, +080000, -050000 | Z is for UTC |
| Time zone | Z07:00 | Z, +08:00, -05:00 | Z is for UTC |
| Time zone | Z07:00:00 | Z, +08:00:00, -05:00:00 | Z is for UTC |
| Time zone | -07 | +00, +08, -05 | |
| Time zone | -0700 | +0000, +0800, -0500 | |
| Time zone | -070000 | +000000, +080000, -050000 | |
| Time zone | -07:00 | +00:00, +08:00, -05:00 | |
| Time zone | -07:00:00 | +00:00:00, +08:00:00, -05:00:00 |
In Golang 1.17+ for fraction of seconds (.999 or .000) you can use , instead of . (,999 or ,000) but output is always with .!!! See