Ai
1 Star 0 Fork 0

tomatomeatman/GolangRepository

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
Time.go 879 Bytes
一键复制 编辑 原始数据 按行查看 历史
tomatomeatman 提交于 2024-11-12 17:45 +08:00 . 2
package dbinfo
import (
"encoding/json"
"time"
)
// 自定义时间类型
type Time time.Time
const (
timeFormat = "2006-01-02 15:04:05"
)
func (t *Time) UnmarshalJSON(data []byte) (err error) {
now, err := time.ParseInLocation(`"`+timeFormat+`"`, string(data), time.Local)
*t = Time(now)
return
}
// 重写MarshalJSON方法来实现gorm查询时间字段事数据解析
func (tu *Time) MarshalJSON() ([]byte, error) {
b := make([]byte, 0, len(timeFormat)+2)
b = append(b, '"')
b = time.Time(*tu).AppendFormat(b, timeFormat)
b = append(b, '"')
return b, nil
}
func (tu Time) String() string {
return time.Time(tu).Format(timeFormat)
}
// 取当前时间
func (tu Time) Now() Time {
var result Time
ti := time.Now().Format(timeFormat)
str, err := json.Marshal(ti)
if err != nil {
return result
}
json.Unmarshal([]byte(str), &result)
return result
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/tomatomeatman/golang-repository.git
git@gitee.com:tomatomeatman/golang-repository.git
tomatomeatman
golang-repository
GolangRepository
941dedad80c3

搜索帮助