不知道名网友 2023-06-14 21:21 采纳率: 50%
浏览 8

关于#go#的问题,如何解决?(语言-golang)


package main

import (
    "encoding/json"
    "fmt"
)

type User struct {
    ID       int    `json:"id"`
    Username string `json:"username"`
    CreatedTime    int `json:"created_time"`

}

func main() {
    //比如这个CreatedTime是mysql存储的int类型
    user := User{
        ID:       1,
        Username: "john_doe",
        CreatedTime:    1686748460,
    }
     fmt.Println(user)
}

比如这个CreatedTime是mysql存储的int类型,这个时候要返回给前端json可能是"2020年10月11日"这种格式,这个明显就是字符串了,
无法循环修改CreatedTime的值,这个时候怎么处理呢

  • 写回答

2条回答 默认 最新

  • 0x0007 2023-06-14 21:33
    关注
    
    package main
    
    import (
        "encoding/json"
        "fmt"
        "time"
    )
    
    type User struct {
        ID          int    `json:"id"`
        Username    string `json:"username"`
        CreatedTime string `json:"created_time"`
    }
    
    func main() {
        user := User{
            ID:          1,
            Username:    "john_doe",
            CreatedTime: "2023-03-01T10:07:40Z",
        }
    
        // 将时间字符串解析为 time.Time 类型
        createdTime, err := time.Parse(time.RFC3339, user.CreatedTime)
        if err != nil {
            fmt.Println("Error:", err)
            return
        }
    
        // 将时间格式化为 "YYYY-MM-DD HH:nn:ss" 格式
        formattedTime := createdTime.Format("2006-01-02 15:04:05")
    
        // 更新 User 结构体中的 CreatedTime 字段
        user.CreatedTime = formattedTime
    
        // 将 User 结构体转换为 JSON 字符串
        jsonBytes, err := json.Marshal(user)
        if err != nil {
            fmt.Println("Error:", err)
            return
        }
        jsonString := string(jsonBytes)
        fmt.Println(jsonString)
    }
    

    输出

    {"id":1,"username":"john_doe","created_time":"2023-03-01 10:07:40"}

    评论

报告相同问题?

问题事件

  • 创建了问题 6月14日