Go 自定义14位时间类型 yyyyMMddHHmmss

目录

功能

代码


功能

数据库或者接口时间类型,经常会使用14位的时间格式。每次都转换有点麻烦。可以自定义一个时间类型。

自定义类型需要实现json接口中的MarshalJSON与UnmarshalJSON两个函数,这样在做json编码解码时就会自动转为14位的时间格式了。

代码

package htimeimport ("errors""fmt""strings""time"
)const (LayoutT14 = "20060102150405"
)type T14 time.Timefunc (nt T14) String() string {return time.Time(nt).Local().Format(LayoutT14)
}// MarshalJSON	JSON编码
func (nt T14) MarshalJSON() ([]byte, error) {t := time.Time(nt).Local()if y := t.Year(); y < 0 || y >= 10000 {return nil, errors.New("Time.MarshalJSON: year outside of range [0,9999]")}b := make([]byte, 0, len(LayoutT14)+2)b = append(b, '"')if !t.IsZero() {b = t.AppendFormat(b, LayoutT14)}b = append(b, '"')return b, nil
}// UnmarshalJSON JSON解码
func (nt *T14) UnmarshalJSON(data []byte) error {v := strings.Trim(string(data), "\"")if data == nil || v == "" {*nt = T14(time.Time{})return nil}t, err := time.ParseInLocation(LayoutT14, v, time.Local)if err != nil {return fmt.Errorf("解析时间字符串'%s'出错", v)}*nt = T14(t.Local())return err
}// NowF14 取当前格式化时间
func NowF14() string {return T14(time.Now()).String()
}// ParseT14 解析时间
func ParseT14(t14 string) time.Time {t14Time, err := time.ParseInLocation(LayoutT14, t14, time.Local)if err != nil {return time.Time{}}return t14Time
}

以上代码实现了14位yyyyMMddHHmmss时间的编码与解码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/820118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第四届大数据工程与教育国际会议(BDEE 2024)即将召开!

第四届大数据工程与教育国际会议&#xff08;BDEE 2024&#xff09;将于2024年8月9-11日在泰国清迈举行。数据驱动教育变革&#xff0c;智慧点亮未来课堂&#xff01;BDEE 2024是专注于大数据工程与教育领域的重要学术会议&#xff0c;全球大数据与教育精英齐聚&#xff0c;在数…

使用 Docker 部署 SurveyKing 调查问卷系统

1&#xff09;SurveyKing 介绍 SurveyKing 是一款功能强大、操作简便的开源问卷系统。它不仅满足了用户对问卷调查的基本需求&#xff0c;还提供了丰富的逻辑设置和灵活的问题设置&#xff0c;使得问卷制作更加智能化和个性化。此外&#xff0c;SurveyKing 还具有快速部署和安全…

构建鸿蒙ACE静态库

搭建开发环境 根据说明文档下载鸿蒙全部代码&#xff0c;一般采取第四种方式获取最新代码(请保证代码为最新) 源码获取Windows下载编译环境 MinGW GCC 7.3.0版本 请添加环境变量IDE 可以使用两种 CLion和Qt,CLion不带有环境需要安装MinGW才可以开发,Qt自带MinGW环境&#xff0…

认识一下RAG

1.RAG技术背景与挑战 2.RAG的核心概念 3.RAG的工作流程与架构 4.RAG的优化方法 RAG的提出 •Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks是一篇重要的论文(2020年5月) •REALM: Retrieval-Augmented Language Model Pre-Training (2020)就将BERT预训练模…

家居网购项目(三)

文章目录 1.后台管理—添加家居1.需求分析2.程序框架图3.修改FurnDao添加方法add 4.修改FurnDaoImpl添加方法add 5.单元测试FurnDaoTest.java 6.修改FurnService添加方法add 7.修改FurnServiceImpl添加方法add 8.单元测试FurnServiceTest.java 9.修改furn_add.jsp10.修改FurnSe…

【面试经典 150 | 数学】阶乘后的零

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;数学优化计算 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的数据结…

人工智能——机器学习概述

1. 人工智能 1.1. 概念 人工智能(Artificial Intelligence&#xff0c;AI)&#xff0c;是新一轮科技革命和产业变革的重要驱动力量&#xff0c; [26]是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 人工智能是智能学科重要的组…

【Ansible自动化运维】Ansible入门基础信息【安装配置、常用命令与模块】

介绍安装配置注意事项yum安装验证安装配置host配置主机清单配置主控端被控端 常用模块命令组成command模块shell模块copy模块script模块 日志信息最后 介绍 Ansible 是一个开源 IT 自动化引擎&#xff0c;可自动执行供应、配置管理、应用程序部署、编排和许多其他 IT 流程。它可…

YesPMP平台 | 活动有礼,现金奖励点击领取!

YesPMP众包平台在线发福利啦&#xff0c;活动火热开启&#xff0c;现金奖励等你来领&#xff0c;最高可领千元&#xff0c;赶快参与将奖励收入囊中&#xff0c;一起来了解活动细节吧&#xff01; 一、活动内容&#xff1a; 活动一&#xff1a;【项目征集令】活动&#xff0c;…

前端大文件上传 -- 上传文件到S3或本地服务器

特别提醒 大文件上传的文件切片逻辑, 包括如何将分片文件上传到本地服务器, 请查看之前的文章: 前端大文件上传 - 总结&#xff08;Vue3 hook Web Worker实现&#xff0c;通过多个Worker线程大大提高Hash计算的速度&#xff09;, 本篇仅实现如何将大文件分块上传到S3. 后面写…

关于Wordpress的操作问题1:如何点击菜单跳转新窗口

1.如果打开&#xff0c;外观-菜单-菜单结构内&#xff0c;没有打开新窗口属性&#xff0c;如图&#xff1a; 2.在页面的最上部&#xff0c;点开【显示选项】&#xff0c;没有这一步&#xff0c;不会出现新跳转窗口属性 3.回到菜单结构部分&#xff0c;就出现了

2024年工程师职称水平能力测试考试难吗?

大家现在都知道&#xff0c;现在湖北中级和高级职称评审&#xff0c;都必须要先报名一个水平能力测试考试&#xff0c;水测考过了之后才能参加评审&#xff0c;那么很多人都不知道水测到底难不难&#xff1f;能不能考过&#xff1f;水测主要是考什么呢&#xff1f; 职称水平能力…

Rust 语言 GUI 用户界面框架汇总(持续更新)

拜登&#xff1a;“一切非 Rust 项目均为非法”&#x1f60e; 什么是 GUI 图形用户界面&#xff08;Graphical User Interface&#xff0c;简称 GUI&#xff0c;又称图形用户接口&#xff09;是指采用图形方式显示的计算机操作用户界面。 现在的应用开发&#xff0c;是既要功…

【python】flask操作数据库工具SQLAlchemy,详细用法和应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

【Linux系统编程】第三弹---基本指令(一)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、touch指令 2、mkdir指令 3、ls 指令 4、pwd命令 3、cd 指令 6、rmdir指令 && rm 指令 7、man指令 7、cp指令 …

在 PyCharm 中使用系统安装的 Python 和 Anaconda 的 Python什么区别

virtualenv environment &#xff1a; virtualenv 是一个用于创建独立 Python 环境的工具。它可以在同一个系统上创建多个相互独立的 Python 环境&#xff0c;每个环境都有自己的 Python 解释器和包库&#xff0c;从而可以实现不同项目之间的依赖隔离和版本控制。coda environm…

[已解决]问题:root.users.hdfs is not a leaf queue

问题&#xff1a;root.users.hdfs is not a leaf queue CDH集群报错&#xff1a; Exception in thread “main” org.apache.hadoop.yarn.exceptions.YarnException: Failed to submit application_1713149630679_0005 to YARN : root.users.hdfs is not a leaf queue 思路 …

海外媒体如何发布软文通稿

大舍传媒-带您了解海外发布新潮流 随着全球化的不断深入&#xff0c;越来越多的中国企业开始关注海外市场。为了在国际舞台上树立品牌形象&#xff0c;企业纷纷寻求与海外媒体合作&#xff0c;通过发布软文通稿的方式&#xff0c;传递正面信息&#xff0c;提升品牌知名度。作为…

【攻防世界】ics-07

<?php session_start();if (!isset($_GET[page])) {show_source(__FILE__);die(); }if (isset($_GET[page]) && $_GET[page] ! index.php) {include(flag.php); }else {header(Location: ?pageflag.php); } <?phpif ($_SESSION[admin]) {$con $_POST[con];$…

Redis: 集群

文章目录 一、单点Redis的问题二、主从架构1、概述2、集群结构3、主从数据同步原理&#xff08;1&#xff09;全量同步&#xff08;2&#xff09;增量同步 4、总结&#xff08;1&#xff09;全量同步和增量同步的区别&#xff08;2&#xff09;什么时候执行全量同步&#xff08…