golang对日期格式化

devtools/2024/11/17 21:57:07/

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/devtools/134801.html

相关文章

AI赋能电商:提升销售效率与用户体验的新引擎

在数字化时代,人工智能(AI)技术正逐步渗透到各行各业,其中电商行业尤为显著。AI技术的引入不仅为电商平台带来了前所未有的创新应用,还极大地提升了销售效率和用户体验。本文将探讨AI技术在购物推荐、会员分类、商品定…

int溢出值(c基础)

1. **整数类型** - **字节型(byte)** - **定义**:字节型通常占用1个字节(8位)存储空间。 - **范围**:在有符号的情况下,范围是从 - 128到127(使用补码表示,最小值为$1000…

SpringBoot开发——整合AJ-Captcha实现安全高效的滑动验证码

文章目录 一、什么是AJ-Captcha二、项目配置1、Maven依赖配置2、滑动验证码的基本原理3、 后端实现3.1 生成滑动验证码图片代码解释3.2 校验滑块位置代码解释4、前端部分代码解释5、Redis 缓存滑动验证码信息5.1 Redis配置5.2使用Redis缓存验证码数据5.3 校验时从Redis获取总结…

网络IP地址会经常换吗?深入解析与实操指南

在互联网的生态系统中,IP地址(Internet Protocol Address)是每台连接设备的唯一标识符,它在网络通信中起着至关重要的作用。然而,不少用户观察到自己的IP地址有时会发生变化,这引发了诸多疑问。本文旨在详细…

[Docker#10] network | 架构 | CRUD | 5种常见网络类型 (实验)

目录 1. Docker 为什么需要网络管理 2. Docker 网络架构简介 CNM(Container Network Model) Libnetwork 驱动 3. ⭕常见网络类型(5 种) 4. Docker 网络管理命令 一. bridge 网络 1. 操作案例:容器间网络通信 …

Jenkins的pipeline Script的 每个组件的详细讲解

在Jenkins的Pipeline脚本中,各个组件的配置和Groovy的一些常用函数起到了决定性的作用,帮助开发人员控制自动化流程的执行。以下是对Jenkins Pipeline的主要组件和Groovy常用函数的详细讲解: 1. Jenkins Pipeline主要组件 1.1 agent 功能&…

第三次作业

1.在/home中创建一个名为 file1.txt 的文件,并设置权限为:所有者和组成员可以读写,但其他人只能读。 [rootlocalhost home]# touch file1.txt [rootlocalhost home]# ll -rw-r--r--. 1 root root 0 11月 11 23:06 file1.txt [rootlo…

炼码LintCode--数据库题库(级别:入门;数量:144道)--刷题笔记_01

目录 炼码LintCode数据库入门级别的笔记未完待续~~~ 炼码LintCode 数据库 入门级别的笔记 笔记如下,把所有涉及到的入门级别的知识点简单总结了一下。 以及一点点举一反三的写法。 增 INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);批量增 INSERT INT…