Datetime 如何在不分析表行的情况下更改结构上的日期格式,如“yyyy-mm-dd”?
我想更改EntryDate格式,如结构上的yyyy mm dd格式Datetime 如何在不分析表行的情况下更改结构上的日期格式,如“yyyy-mm-dd”?,datetime,go,time,struct,Datetime,Go,Time,Struct,我想更改EntryDate格式,如结构上的yyyy mm dd格式 type Value struct { Id uint `json:”id”` EntryDate time.time `json:”entry_date”` ProductId int `json:"product_id"` Value float64 `json:”value”` } 默认情况下,结果如下所示 { Id: 11, EntryDate: "2017-11-23T00:0
type Value struct {
Id uint `json:”id”`
EntryDate time.time `json:”entry_date”`
ProductId int `json:"product_id"`
Value float64 `json:”value”`
}
默认情况下,结果如下所示
{
Id: 11,
EntryDate: "2017-11-23T00:00:00Z",
product_id: 1,
Value: 932.3
},
如何在不解析代码的情况下在结构上更改诸如yyyy mm dd之类的EntryDate格式?如果我理解正确,您可以这样做:
package main
import (
"encoding/json"
"fmt"
"time"
)
type Value struct {
Id uint `json:”id”`
EntryDate time.Time `json:”entry_date”`
ProductId int `json:"product_id"`
Value float64 `json:”value”`
}
func main() {
val := Value{}
val.Id = 1
val.EntryDate = time.Now().UTC()
val.ProductId = 2
val.Value = 1.223
t := val.EntryDate.UTC().Format("2006-01-02")
fmt.Println("formated time : ", t)
b, err := json.Marshal(val)
if err != nil {
fmt.Println("failed to marshal object", err)
return
}
fmt.Println("actual object", string(b))
}
输出
formated time : 2009-11-10
actual object {"Id":1,"EntryDate":"2009-11-10T23:00:00Z","product_id":2,"Value":1.223}
入住游戏场:什么桌子行?你能发布实际的代码和问题吗?给出的Go代码和JSON都无效。这似乎是一个标准定义您自己的封送员,如中所示,或者我在两个之后停止搜索,我们有很多这样的问题。我的意思是从表中获取结果并通过循环格式化EntryDate,然后作为JSON呈现。是否可以在结构上更改诸如yyyy mm dd之类的EntryDate类型?因此您希望格式化time.time。它有一个格式化方法:它通过解析代码而不是结构类型来工作。如何使用其他格式自定义time.time?这种情况是不可能的吗?谢谢,这是真的,但我想通过在结构上使用自定义类型(如EntryDate time.CustomFormat)进行预定义来设置格式。你知道我该怎么做吗?请告诉我需要参考资料。非常感谢。