标签:return nil -- Time DateTime json time go type
// 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
}
标签:return,nil,--,Time,DateTime,json,time,go,type 来源: https://www.cnblogs.com/gongxianjin/p/16683178.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。