Datetime 如何在不分析表行的情况下更改结构上的日期格式,如“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

我想更改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: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)进行预定义来设置格式。你知道我该怎么做吗?请告诉我需要参考资料。非常感谢。