sqlite3中的日期默认是UTC,当日期字段的默认值是CURRENT_TIMESTAMP时,这个日期和北京时间CST少了8小时。
网上建议说数据库里用UTC,读取数据时再转换为当地时间。
web页面中的日期如创建日期通常是需要“格式化”一下的,否则显示出来是这个样子:
2017-08-17 08:50:37 +0000 UTC
在go template中可以使用管道,自定义一个日期函数即可。
其实这个函数很简单,关键就是要用Local函数:
func formatDate(t time.Time) string { layout := "2006-01-02" return t.Local().Format(layout) }
还要记住一点:给模板中增加的自定义函数要在解析html文件前调用!
funcMap := template.FuncMap{ "fdate": formatDate, "fdatetime": formatDateTime } t, err := template.New("employees.html").Funcs(funcMap).ParseFiles("employees.html")
-- END --