在Go中格式化详细日期

Rick-777:

我想以人类可读的格式生成格式化的日期。通常在英语语言环境中,后缀用于该月的一天,即第一,第二,第三,第四,第五等。

我尝试使用格式字符串"Monday 2nd January"设置此类日期的格式,但似乎无法正常工作。

例如在操场上

import (
    "fmt"
    "time"
)

const format = "Monday 2nd January"

func main() {
    t1 := time.Date(2015, 3, 4, 1, 1, 1, 1, time.UTC)
    fmt.Println(t1.Format(format))

    t2 := time.Date(2015, 3, 1, 1, 1, 1, 1, time.UTC)
    fmt.Println(t2.Format(format))
}

这产生结果

Wednesday 4nd March
Sunday 1nd March

但我希望

Wednesday 4th March
Sunday 1st March

我做错了什么?

OneOfOne:

它不支持这种格式,您必须自己实现它,例如:

func formatDate(t time.Time) string {
    suffix := "th"
    switch t.Day() {
    case 1, 21, 31:
        suffix = "st"
    case 2, 22:
        suffix = "nd"
    case 3, 23:
        suffix = "rd"
    }
    return t.Format("Monday 2" + suffix + " January")
}

play

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章