How to convert date format in golang?

一曲冷凌霜 提交于 2019-12-29 01:45:11

问题


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?


回答1:


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")

A playground to test with.




回答2:


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
}


来源:https://stackoverflow.com/questions/36807596/how-to-convert-date-format-in-golang

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!