用API的golang保存时间到mongodb,但时间不匹配

6ojccjat  于 2023-05-06  发布在  Go
关注(0)|答案(1)|浏览(176)

这是我的结构位于不同的go文件

type ImageData struct {
    Id   primitive.ObjectID `json:"id,omitempty" bson:"_id,omitempty"`
    Time time.Time  `json:"time,omitempty" bson:"time,omitempty"`
    Path    string  `json:"path,omitempty" bson:"path,omitempty"`
    SizeBefore  string  `json:"sizebefore,omitempty" bson:"sizebefore,omitempty"`
    SizeAfter   string  `json:"sizeafter,omitempty" bson:"sizeafter,omitempty"`
    IsSuccess   bool    `json:"issuccess,omitempty" bson:"issuccess,omitempty"`
}

这是位于不同go文件中的create函数

func CreateImageData(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "application/json")
    var image models.ImageData

    json.NewDecoder(r.Body).Decode(&image)
    image.Time = time.Now()

    collection := database.ImageData()
    ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)
    result, _ := collection.InsertOne(ctx, image)

    json.NewEncoder(w).Encode(result)
}

当我创建一个ImageData结构并保存到数据库时,时间不匹配,这是我的mongodb中的数据

[
    {
        "id": "6453e3a9b680e192e2fb82aa",
        "time": "2023-05-04T16:56:09.67Z",
        "path": "/result/test1.png",
        "sizebefore": "785KB",
        "sizeafter": "785KB"
    }
]

但我的真实的时间是2023-05- 04 T23:57:00
如何解决这个问题,使时间准确
抱歉英语不好

gkl3eglg

gkl3eglg1#

您可以使用'time'包和'Format'函数将日期时间转换为有效格式。
请注意,您需要更改日期时间的格式,因为MongoDB使用UTC格式。
下面是一个例子:

package main

import (
    "fmt"
    "time"
)

func main() {
    now := time.Now().UTC()
    formatted := now.Format(time.RFC3339Nano)
    fmt.Println(formatted)
}

相关问题