如何在golang中转换日期格式?

时间:2016-04-23 06:43:35

标签: date go time date-conversion

我想在golang中将日期格式从2010-01-23 11:44:20转换为Jan 23 '10 at 11:44。我尝试了time套餐中的一些功能,但无法实现。

有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:6)

您可以使用时间包的ParseFormat将其转换为所需的文字格式。两者都以您需要的格式参考时间(2006-01-02 15:04:05)作为参数,使格式相当容易理解。

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

答案 1 :(得分:1)

一种方法是使用时间包的解析和格式功能,
或者另一种方法是编写自己的格式化函数,如下所示:

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
}