关于Golang日期格式化指定的方法

只是想简单地改变日期格式而陷入了困境,所以这是个备忘录。(以下假设package和import已经适当声明。)

让我们比较使用Ruby和Golang来为今天的日期选择特定的格式,并对其进行说明。

在Ruby的情况下

要改变日期格式,使用以下通过指定以%开头的格式进行转换的方式来进行。

# 2015-06-12 00:50:19 +0900
Time.now
# 2015-06-12
Time.now.strftime("%Y-%m-%d") 

对于Golang来说

一方,Golang会根据特定字符串指定的格式进行转换。

// 2015-06-12 00:17:10.467238206 +0900 JST
time.Now()
// 2015-06-12
time.Now().Format("2006-01-02")

以下是可以指定的格式。有关日期格式的更详细信息,请参阅源文件src/time/format.go。

const (
    stdLongMonth      = "January"
    stdMonth          = "Jan"
    stdNumMonth       = "1"
    stdZeroMonth      = "01"
    stdLongWeekDay    = "Monday"
    stdWeekDay        = "Mon"
    stdDay            = "2"
    stdUnderDay       = "_2"
    stdZeroDay        = "02"
    stdHour           = "15"
    stdHour12         = "3"
    stdZeroHour12     = "03"
    stdMinute         = "4"
    stdZeroMinute     = "04"
    stdSecond         = "5"
    stdZeroSecond     = "05"
    stdLongYear       = "2006"
    stdYear           = "06"
    stdPM             = "PM"
    stdpm             = "pm"
    stdTZ             = "MST"
    stdISO8601TZ      = "Z0700"  // prints Z for UTC
    stdISO8601ColonTZ = "Z07:00" // prints Z for UTC
    stdNumTZ          = "-0700"  // always numeric
    stdNumShortTZ     = "-07"    // always numeric
    stdNumColonTZ     = "-07:00" // always numeric
)

最后

由于我习惯了类似Ruby的格式指定,所以我觉得Golang的这种指定方式有点奇怪。为什么会搞得这么难懂呢?或许这就是正常的方式吗?如果有人知道原因,请告诉我。

请参考

    How to format current time using a yyyyMMddHHmmss format?
广告
将在 10 秒后关闭
bannerAds