程序开发 · 2023年10月23日

用golang用api节省时间到mongodb,但是时间不匹配

当前位置: > > > > 用golang用api节省时间到mongodb,但是时间不匹配

来源:stackoverflow
2024-04-21 17:39:34
0浏览
收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《用golang用api节省时间到mongodb,但是时间不匹配》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

这是我位于不同 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 文件中的创建函数

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-04t23:57:00

如何解决此问题以使时间准确

抱歉英语不好

正确答案

您可以使用“time”包和“format”函数将日期时间转换为有效格式。

请注意,您需要更改日期时间的格式,因为 mongodb 使用 utc 格式。

这是一个例子:

package main

import (
    "fmt"
    "time"
)

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

好了,本文到此结束,带大家了解了《用golang用api节省时间到mongodb,但是时间不匹配》,希望本文对你有所帮助!关注公众号,给大家分享更多Golang知识!