在代码中我们可以使用Format方法来进行日期的格式化,那么在template文件,比如tpl文件中如何格式化日期呢?本篇文章给大家提供相关实例

具体示例

例如结果体Post代码如下:

type Post struct {
        Id        int
        Title     string
        CreatedOn time.Time
 }
    //数据库中存储的日期为 2015-04-04 20:51:48

那么,在页面template中可通过如下方式获取:

<span>{{ .CreatedOn }}</span>
<!-- 输出: 2015-04-04 20:51:48 +0000 +0000 -->

<span>{{ .CreatedOn.Format "2006 Jan 02" }}</span>
<!-- 输出: 2015 Apr 04 -->

<span>{{ .CreatedOn.Format "Jan 02, 2006" }}</span>
<!-- 输出: Apr 04, 2015 -->

<span>{{.CreatedOn.Format "Jan 02, 2006 15:04:05 UTC" }}</span>
<!-- 输出: Apr 04, 2015 20:51:48 UTC -->

注意事项

在使用此格式化的过程中需要注意的是Format后面所跟的常量字符串,必须是示例中的时间。具体的时间常量可以参考time包下format.go文件内定义的常量:

const (
    ANSIC       = "Mon Jan _2 15:04:05 2006"
    UnixDate    = "Mon Jan _2 15:04:05 MST 2006"
    RubyDate    = "Mon Jan 02 15:04:05 -0700 2006"
    RFC822      = "02 Jan 06 15:04 MST"
    RFC822Z     = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone
    RFC850      = "Monday, 02-Jan-06 15:04:05 MST"
    RFC1123     = "Mon, 02 Jan 2006 15:04:05 MST"
    RFC1123Z    = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone
    RFC3339     = "2006-01-02T15:04:05Z07:00"
    RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
    Kitchen     = "3:04PM"
    // Handy time stamps.
    Stamp      = "Jan _2 15:04:05"
    StampMilli = "Jan _2 15:04:05.000"
    StampMicro = "Jan _2 15:04:05.000000"
    StampNano  = "Jan _2 15:04:05.000000000"
)