I would like to convert date format from 2010-01-23 11:44:20
to Jan 23 '10 at 11:44
in golang. I tried few functions from time package but couldn't make it.
Could someone help me with this?
You could use the time package's Parse
and Format
to convert it to the desired text format. Both take a reference time (2006-01-02 15:04:05) in the format you require as a parameter which makes the format fairly easy to understand.
dtstr1 := "2010-01-23 11:44:20"
dt,_ := time.Parse("2006-01-02 15:04:05", dtstr1)
dtstr2 := dt.Format("Jan 2 '06 at 15:04")
One way is to use the time package's Parse and Format functions,
or another way is to write your own formatter function like this:
package main
import (
"bytes"
"fmt"
"time"
)
//2010-01-23 11:44:20 to Jan 23 '10 at 11:44
func FormatDateTime(t time.Time) string {
var buffer bytes.Buffer
buffer.WriteString(t.Month().String()[:3])
buffer.WriteString(fmt.Sprintf(" %2d '%2d at %2d:%2d", t.Day(), t.Year()%100, t.Hour(), t.Minute()))
return buffer.String()
}
func main() {
t := time.Now()
str := FormatDateTime(t)
fmt.Println(str) //Apr 23 '16 at 11:50
}