How to convert date format in golang?

前端 未结 2 1404
深忆病人
深忆病人 2020-12-11 23:42

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\

相关标签:
2条回答
  • 2020-12-12 00:13

    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.

    0 讨论(0)
  • 2020-12-12 00:18

    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
    }
    
    0 讨论(0)
提交回复
热议问题