// Copyright (c) 2021. Huawei Technologies Co., Ltd. All rights reserved.

// Package common this file for time format
package common

import (
"database/sql/driver"
"fmt"
"time"
)

const timeFormat = "2006-01-02 15:04:05"

// DateTime DateTime
type DateTime time.Time

// MarshalJSON for time format to datetime
func (t DateTime) MarshalJSON() ([]byte, error) {
datetime := fmt.Sprintf(`"%s"`, time.Time(t).Format(timeFormat))
return []byte(datetime), nil
}

// Value insert timestamp into mysql need this function.
func (t DateTime) Value() (driver.Value, error) {
var zeroTime time.Time
ti := time.Time(t)
if ti.UnixNano() == zeroTime.UnixNano() {
return nil, nil
}
return ti, nil
}

// Scan valueof time.Time
func (t *DateTime) Scan(v interface{}) error {
ti, ok := v.(time.Time) // NOT directly assertion v.(DateTime)
if ok {
*t = DateTime(ti)
return nil
}
return fmt.Errorf("can not convert %v to timestamp", v)
}

// ResultMsg resp struct
type ResultMsg struct {
Status string `json:"status"`
Msg string `json:"msg"`
Data interface{} `json:"data"`
}

// PageResult pagequery resut
type PageResult struct {
CurrentPage int `json:"currentPage"`
PageSize int `json:"pageSize"`
PageCount uint64 `json:"pageCount"`
Total uint64 `json:"total"`
Data interface{} `json:"data"`
}

const (
// StatusOK status
StatusOK = 200
// StatusFailed failed status
StatusFailed = 400
// BaseHex Base Parse integer need params
BaseHex = 10
// BitSize64 Base Parse integer need params
BitSize64 = 64

// HTTPServerTimeout http server timeout
HTTPServerTimeout = 20
// MaxConcurrency default max concurrency
MaxConcurrency = 100
// DefaultConcurrency default concurrency
DefaultConcurrency = 20
// SortByAsc sort by asc
SortByAsc = "asc"
// SortByDesc sort by desc
SortByDesc = "desc"
// MaxPageSize the max page size
MaxPageSize = 100
// ContentDisposition header information
ContentDisposition = "Content-Disposition"
// ContentType header information
ContentType = "Content-Type"
// AcceptLength header information
AcceptLength = "Accept-Length"

// ConnectionRetryTimes retry connect times
ConnectionRetryTimes = 3
// DefaultRequestTimeout internal request timeout
DefaultRequestTimeout = 5
)

// NewDateTime new DateTime for marshal
func NewDateTime(time2 time.Time) *DateTime {
if time2.IsZero() {
return nil
}

datetime := DateTime(time2)
return &datetime
}

mindxdl--common--type.go的更多相关文章

  1. c# Entity DbArithmeticExpression arguments must have a numeric common type

    在Entity Lambda表达式中计算DateTime类型的时候 不能直接用DateTime类型进行相减计算差值 需要使用DbFunctions提供的一些方法. 例如: DbFunctions.Di ...

  2. DbArithmeticExpression arguments must have a numeric common type.

    引用 system.data.linq

  3. 深入理解.net - 3.类型Type

    说到类型,.NET技术是基于通用类型系统(CTS,Common Type System)的,而CTS又是构建于公共语言架构(CLI,Common Language Infrastructure)之上, ...

  4. 深入理解C#

    简单认识.NET框架    (1)首先我们得知道 .NET框架具有两个主要组件:公共语言进行时CLR(Common Language Runtime)和框架类库FCL(Framework Class ...

  5. .NET平台和C#编程的总结

    第一章   简单认识.NET框架    (1)首先我们得知道 .NET框架具有两个主要组件:公共语言进行时CLR(Common Language Runtime)和框架类库FCL(Framework ...

  6. 深入.NET平台和C#编程总结大全

    对于初学者的你,等到你把这个看完之后就更清楚地认知.NET和C#编程了,好了废话不多说,开始吧!                                                     ...

  7. .NET面试题集锦①(Part一)

    一.前言部分 文中的问题及答案多收集整理自网络,不保证100%准确,还望斟酌采纳. 1.面向对象的思想主要包括什么? 答:任何事物都可以理解为对象,其主要特征: 继承.封装.多态.特点:代码好维护,安 ...

  8. .Net 面试题 3C(CTS,CLS,CLR)

    1.CTS(Common Type System)通用类型系统 CTS不但实现了COM的变量兼容类型,而且还定义了通过用户自定义类型的方式来进行类型扩展.任何以.NET平台作为目标的语言必须建立它的数 ...

  9. .net erp(办公oa)开发平台架构之流程服务概要介绍

    背景 搭建一个适合公司erp业务的开发平台. 架构概要图:    流程引擎开发平台:  包含流程引擎设计器,流程管理平台,流程引擎服务.目前只使用单个数据库进行管理.  流程引擎设计器 采用silve ...

  10. .net framework体系结构

    CIL(common intermediate language):公共中间语言..net框架下各种种类.版本的编程语言在经过编译后生成的中间语言(后缀为.il),与平台无关.与语言无关,只要机器上运 ...

随机推荐

  1. KingbaseES DENSE_RANK 函数用法

    DENSE_RANK()函数用于为结果集分区内的每一行分配一个排名,排名值之间没有差距,函数为结果集的每个分区中的每一行分配一个等级. 与 RANK() 函数不同的是,DENSE_RANK() 函数总 ...

  2. KingbaseES V8R6 锁等待检测

    背景 对于多数数据库,dba技能之一就是查找锁.锁的存在有效合理的在多并发场景下保证业务有序进行.下面我们看一下KingbaseESV8R6中查找阻塞的方法. 1.找到"被阻塞者" ...

  3. KingbaseES 行列转换函数

    关键字:    行专列,列转行, pivot, unpivot 行列转换是在数据分析中经常用到的一项功能,KingbaseES从V8R6C3B0071版本开始通过扩展插件(kdb_utils_func ...

  4. SpringMVC--从理解SpringMVC执行流程到SSM框架整合

    前言 SpringMVC框架是SSM框架中继Spring另一个重要的框架,那么什么是SpringMVC,如何用SpringMVC来整合SSM框架呢?下面让我们详细的了解一下. 注:在学习SpringM ...

  5. Kubernetes 日志:日志收集架构

    应用程序和系统日志可以帮助我们了解集群内部的运行情况,日志对于我们调试问题和监视集群情况也是非常有用的.而且大部分的应用都会有日志记录,对于传统的应用大部分都会写入到本地的日志文件之中.对于容器化应用 ...

  6. linux系统排查数据包常用命令

    1.查看当前系统中生效的所有参数 sysctl -a 2.统计处于TIME_WAIT状态的TCP连接数 netstat -ant|grep TIME_WAIT|wc -l 3.统计TCP连接数 net ...

  7. linux开机自启服务

    前言:最近,有一个项目需要用到开机自动启动机房,所以就研究了一下 1.把node的快捷方式放在放在/usr/bin/(环境变量)下面,所有的命令默认是从这里面进行调用的 ln -s /home/too ...

  8. WMS 相比于 ERP 系统有哪些优势?

    WMS与ERP系统是两个不同的系统,不存储优势的比较!WMS是仓库管理系统(Warehouse Management System) 的缩写,ERP是Enterprise Resource Plann ...

  9. 用golang开发系统软件的一些细节

    用golang开发系统软件的一些细节 作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 (本文的pdf版本) ...

  10. [题解] Atcoder ABC 213 H Stroll DP,分治FFT

    题目 令\(dp_{i,j}\)表示从点1到达点i,路径长度为j的方案数.转移为\(dp_{i,j}=\sum_{(i,v,w)\in E}dp_{v,j-w}p_{i,v,w}\). 显然只能从长度 ...