golang对日期格式化

news/2024/11/19 20:48:37/

1.对日期格式化为 YYYY-mm-dd, 并且没有数据时,返回空 


import ("encoding/json""time"
)type DateTime time.Timetype SysRole struct {RoleId     int64     `gorm:"type:bigint(20);primary_key;auto_increment;角色ID;" json:"roleId"`RoleName   string    `gorm:"type:varchar(30);comment:角色名称;" json:"roleName"`RoleKey    string    `gorm:"type:varchar(100);comment:角色权限字符串;" json:"roleKey"`RoleSort   int       `gorm:"type:int(11);comment:显示顺序;" json:"roleSort"`DataScope  string    `gorm:"type:char(1);comment:数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限);" json:"dataScope"`Status     string    `gorm:"type:char(1);comment:角色状态(0正常 1停用);" json:"status"`UpdateBy   string    `gorm:"type:varchar(64);comment:更新者;" json:"updateBy"`UpdateTime DateTime `json:"updateTime"`Remark     string    `gorm:"type:varchar(500);comment:备注;" json:"remark"`CreateTime DateTime `json:"createTime"`CreateBy   string   `gorm:"type:varchar(32);comment:创建人;column:create_by;"  json:"createBy"`DelFlag    int      `gorm:"type:tinyint(1);default:0;comment:删除标记;column:del_flag;" json:"delFlag"`
}// 映射数据表
func (r *SysRole) TableName() string {return "sys_role"
}// 为DateTime类型实现String方法,用于自定义格式化输出
func (d DateTime) String() string {return time.Time(d).Format("2006-01-02 15:04:05")
}// 日期格式化
func (t SysRole) MarshalJSON() ([]byte, error) {type TmpJSON SysRolevar createTimeStr, updateTimeStr stringif!time.Time(t.CreateTime).IsZero() {createTimeStr = t.CreateTime.String()}if!time.Time(t.UpdateTime).IsZero() {updateTimeStr = time.Time(t.UpdateTime).Format("2006-01-02 15:04:05")}return json.Marshal(&struct {TmpJSONCreateTime string `json:"createTime"`UpdateTime string `json:"updateTime"`}{TmpJSON:    (TmpJSON)(t),CreateTime: createTimeStr,UpdateTime: updateTimeStr,})
}

2.测试


http://www.ppmy.cn/news/1548322.html

相关文章

无插件H5播放器EasyPlayer.js网页web无插件播放器vue和react详细介绍

EasyPlayer.js H5播放器,是一款能够同时支持HTTP、HTTP-FLV、HLS(m3u8)、WS、WEBRTC、FMP4视频直播与视频点播等多种协议,支持H.264、H.265、AAC、G711A、Mp3等多种音视频编码格式,支持MSE、WASM、WebCodec等多种解码方…

推荐一款功能强大的光学识别OCR软件:Readiris Dyslexic

Readiris Dyslexic是一款功能强大的光学识别OCR软件,可以扫描任何纸质文档并将其转换为完全可编辑的数字文件(Word,Excel,PDF),然后用你喜欢的编辑器进行编辑。该软件提供了一种轻松创建,修改和签名PDF的完整解决方法&…

【青牛科技】带 ALC 双通道前置放大器电路D3308

概述: D3308 是一块带有 ALC 的双通道前置放大器。它适用于立体声收录机 和盒式录音机。 采用 SIP9、SOP14 的封装形式封装。 主要特点: ● 带内置 ALC 回路的双通道均衡放大器。 ● 低噪声: VNI1.0V(典型值)。 …

在 Ubuntu 中用 VSCode 配置 C 语言项目的编译与调试(详解教程)

目录 一、准备工作二、配置 VSCode 的编译任务三、配置 VSCode 的调试任务四、编译与调试流程五、常见问题排查六、总结 在 C 语言开发过程中,调试与编译是不可缺少的环节,而 VSCode(Visual Studio Code)作为一个强大且轻量级的编…

十四、SpringMVC的执行流程

文章目录 1. SpringMVC常用组件2. DispatcherServlet初始化过程3. DispatcherServlet调用组件处理请求4. SpringMVC的执行流程 1. SpringMVC常用组件 2. DispatcherServlet初始化过程 3. DispatcherServlet调用组件处理请求 4. SpringMVC的执行流程

2024年中国金融大模型产业发展洞察报告(附完整PDF下载)

本报告从金融大模型的技术发展背景入手,详细介绍了大模型的结构特征、优势能力,并结合行业卓越者的评选结果,展现了行业内的领先企业和他们的成功案例。报告进一步探讨了金融大模型产业的未来趋势,包括市场趋势前瞻、产品结构建设…

【揭秘】CSS in JS:用JS对象定义样式,告别类名冲突(4)

CSS-in-JS 是一种将 CSS 样式以 JavaScript 对象的形式来描述的方法。这种方法的核心思想是用 JavaScript 对象来描述样式,而不是传统的 CSS 样式表。CSS-in-JS 在现代前端开发中越来越流行,特别是在使用 React 和 Vue 等现代框架时。 1. 基本概念 1.1…

【mysql】锁机制 - 3.意向锁

意向锁(Intension Lock) 是为了提高粗粒度锁性能而设置的一种预判机制,即在一个操作发起实际资源的锁申请行为之前,先对更粗力度的资源发起一个加锁意向声明。 为什么需要意向锁? 比如对于以下操作: 事务…