Я делаю этот простой веб-сервер, который может разместить мой блог, но что бы я ни делал; Я не могу выполнить правильное форматированное время в моем html/template.
Вот что я делаю:
Я создал эту структуру:
type Blogpost struct {
Title string
Content string
Date time.Time
}
Далее я создал эту небольшую функциональность, которая извлекает блогпосты с соответствующими заголовками/датами из хранилища Appengine Datastore и возвращает это как срез:
func GetBlogs(r *http.Request, max int) []Blogpost {
c := appengine.NewContext(r)
q := datastore.NewQuery("Blogpost").Order("-Date").Limit(max)
bp := make([]Blogpost, 0, max)
q.GetAll(c, &bp)
return bp
}
Наконец, в blogHandler я создаю срез на основе извлеченных данных из хранилища данных Appengine, используя:
blogs := GetBlogs(r, 10)
Теперь, когда я выполняю свой шаблон, называемый блогами, как это, даты блогов анализируются как даты по умолчанию:
blog.Execute(w, blogs) // gives dates like: 2013-09-03 16:06:48 +0000 UTC
Итак, я, будучи Golang n00b, который я есть, сказал бы, что такая функция, как следующая, даст мне результат, который я хочу
blogs[0].Date = blogs[0].Date.Format("02-01-2006 15:04:05") // Would return like 03-09-2013 16:06:48, at least when you print the formatted date that is.
Однако это приводит к конфликту типа, который я пытался решить, используя:
blogs[0].Date, _ = time.Parse("02-01-2006 15:04:05", blogs[0].Date.Format("02-01-2006 15:04:05")) // returns once again: 2013-09-03 16:06:48 +0000 UTC
Вероятно, что-то вроде n00b, которое я наблюдал еще раз, но я просто не могу понять, как я не могу переопределить время. Time Type в фрагменте или, по крайней мере, печатать его в том формате, который я хочу.