如何将日期转换为不同的格式?
How to convert date to different formats?
我想在 Go 中将日期格式从 2010-01-23 11:44:20
转换为 Jan 23 '10 at 11:44
。我尝试了 time 包中的几个功能,但无法实现。
有人可以帮我解决这个问题吗?
您可以使用时间包的 Parse
and Format
将其转换为所需的文本格式。两者都采用您需要的格式的参考时间 (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")
一种方法是使用时间包的解析和格式化功能,
或者另一种方法是像这样编写您自己的格式化程序函数:
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
}
我想在 Go 中将日期格式从 2010-01-23 11:44:20
转换为 Jan 23 '10 at 11:44
。我尝试了 time 包中的几个功能,但无法实现。
有人可以帮我解决这个问题吗?
您可以使用时间包的 Parse
and Format
将其转换为所需的文本格式。两者都采用您需要的格式的参考时间 (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")
一种方法是使用时间包的解析和格式化功能,
或者另一种方法是像这样编写您自己的格式化程序函数:
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
}