我想以人类可读的格式生成格式化的日期。通常在英语语言环境中,后缀用于该月的一天,即第一,第二,第三,第四,第五等。
我尝试使用格式字符串"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
我做错了什么?
它不支持这种格式,您必须自己实现它,例如:
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")
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句