在Go中格式化详细日期

在Go中格式化详细日期,go,Go,我想产生一个人类可读的格式格式化日期。通常在英语地区,后缀用于一个月的第1天、第2天、第3天、第4天、第5天等 我尝试使用格式字符串“1月2日星期一”来设置这些日期的格式,但似乎不起作用 例如,在: 这就产生了结果 Wednesday 4nd March Sunday 1nd March 但我希望 Wednesday 4th March Sunday 1st March 我做错了什么?它不支持这种格式,您必须自己实现它,像这样的(黑客的)东西: func formatDate(t time.

我想产生一个人类可读的格式格式化日期。通常在英语地区,后缀用于一个月的第1天、第2天、第3天、第4天、第5天等

我尝试使用格式字符串
“1月2日星期一”
来设置这些日期的格式,但似乎不起作用

例如,在:

这就产生了结果

Wednesday 4nd March
Sunday 1nd March
但我希望

Wednesday 4th March
Sunday 1st March

我做错了什么?

它不支持这种格式,您必须自己实现它,像这样的(黑客的)东西:

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")
}

即使strftime也不支持后缀。悲哀。也许是错失了一次机会?几年后,我自己实施了一个解决方案
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")
}