// 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. vim 正则表达式

    1.查找字符串 /str n 下一个 2.替换表达式 :[range]s/from/to/[flags] range:搜索范围,如果没有指定范围,则作用于但前行. :1,10s/from/to/ 表示 ...

  2. 理解virt、res、shr之间的关系(linux系统篇)

    前言 想必在linux上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题--你的程序在运行时占用了多少内存(物理内存)? 通常我们可以通过top命令查看进程占用了多少内存.这里我们可 ...

  3. 3、StringBuffer类

    StringBuffer类 java.lang.StringBuffer代表可变的字符序列,可以对字符串内容进行增删 很多方法与String相同,但StringBuffer是可变长度的 StringB ...

  4. 【COS生态建设】开发者有奖调研,等你来参与!

    为了更好的赋能开发者,为大家提供更好的开源应用,我们诚挚的邀请您抽出几分钟参与"有奖问卷",告诉我们您对"COS生态建设"的意见和建议.希望通过这份调查问卷,能 ...

  5. 在 Traefik 中使用 Kubernetes Gateway API

    文章转载自:https://mp.weixin.qq.com/s/QYy8ETBB-xqU0IMI7YuTWw Gateway API(之前叫 Service API)是由 SIG-NETWORK 社 ...

  6. Solutions:Elastic SIEM - 适用于家庭和企业的安全防护 ( 一)

  7. mysqld_exporter参数信息

    [root@database03 mysqld_exporter]# ./mysqld_exporter --help usage: mysqld_exporter [<flags>] F ...

  8. linux主机时间同步

    yum -y install ntpdate ntp && ntpdate cn.pool.ntp.org systemctl start ntpd.service && ...

  9. 4.Gitlab CI 与 Kubernetes 的结合

    参考网址:https://www.qikqiak.com/post/gitlab-ci-k8s-cluster-feature/

  10. 在Ubuntu 主机上使用 Cockpit 管理容器

    如果你管理着一台 Linux 服务器,那么你可能正在寻找一个可靠的管理工具.为了这个你可能已经看了 Webmin 和 cPanel 这类软件.但是,如果你正在寻找一种简单的方法来管理还包括了 Dock ...