当前位置: 首页 > article >正文

golang对日期格式化

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


import (
	"encoding/json"
	"time"
)

type DateTime time.Time

type 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 SysRole

	var createTimeStr, updateTimeStr string
	if!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 {
		TmpJSON
		CreateTime string `json:"createTime"`
		UpdateTime string `json:"updateTime"`
	}{
		TmpJSON:    (TmpJSON)(t),
		CreateTime: createTimeStr,
		UpdateTime: updateTimeStr,
	})
}

2.测试


http://www.kler.cn/a/397572.html

相关文章:

  • DAY120java审计第三方组件依赖库挖掘FastjsonShiroLog4jH2DB
  • 处理namespace问题:Namespace not specified for AGP 8.0.0
  • 游戏引擎学习第八天
  • FreeSWITCH chat 得到的是 Error! Message Not Sent
  • 51单片机基础05 定时器
  • shell编程--永久环境变量和字符串显位
  • Tailwind CSS 和 UnoCSS简单比较
  • 数据库管理-第262期 崖山:知其不可而为之(20241116)
  • 【笔记】Vue3回忆录
  • 【C语言指南】C语言内存管理 深度解析
  • aitrader双界面引擎(dash和streamlit),引入zvt作为数据获取及存储支持
  • 以太坊基础知识结构详解
  • 将大型语言模型(如GPT-4)微调用于文本续写任务
  • STM32设计井下瓦斯检测联网WIFI加Zigbee多路节点协调器传输
  • 【jvm】如何破坏双亲委派机制
  • LeetCode - #134 加油站
  • vocode Vue3项目 红色波浪线解决方案集锦
  • 丹摩征文活动|丹摩智算平台使用指南
  • 1436:数列分段II -整型二分
  • 两行命令搭建深度学习环境(Docker/torch2.5.1+cu118/命令行美化+插件),含完整的 Docker 安装步骤
  • 护眼模式浓度调整到最低
  • 【软件测试】一个简单的自动化Java程序编写
  • ELMo模型介绍:深度理解语言模型的嵌入艺术
  • Java基础——网络编程
  • 魔方和群论
  • java 数组 拼接 详解