如何将日期转换为不同的格式?

3
我想将日期格式从2010-01-23 11:44:20转换为Jan 23 '10 at 11:44,使用Go语言。我尝试了time包中的几个函数,但无法成功。
有人能帮我吗?
2个回答

8
你可以使用 time 包的 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")

用于测试的游乐场


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
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接