123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- package util
- import (
- "bytes"
- "io"
- "time"
- "github.com/pkg/errors"
- "kpt.xdmy/pkg/log"
- )
- func Bool() {
- }
- func Zero(b bool) int {
- if b {
- return 1
- }
- return 0
- }
- func ZeroStr(b bool, s string) string {
- if b {
- return s
- }
- return ""
- }
- func ParseDate(d string) (res time.Time, err error) {
- if len(d) == 8 {
- d = d[:4] + "-" + d[4:6] + "-" + d[6:]
- }
- res, err = time.ParseInLocation("2006-01-02", d, time.Local)
- if err != nil {
- err = errors.Wrapf(err, "util ParseDate %s", d)
- log.Print(err.Error())
- }
- return
- }
- func ParseDateAndTime(d, t string) (res time.Time, e error) {
- if d == "00000000" {
- return time.Now(), nil
- }
- if len(d) == 8 {
- d = d[:4] + "-" + d[4:6] + "-" + d[6:]
- }
- if len(t) == 6 {
- t = t[:2] + ":" + t[2:4] + ":" + t[4:]
- }
- if t != "" {
- d = d + " " + t
- }
- if res, e = time.ParseInLocation("2006-01-02 15:04:05", d, time.Local); e != nil {
- e = errors.Wrapf(e, "util ParseDateAndTime %s %s", d, t)
- }
- return
- }
- func Unmarshal(p interface{}, res interface{}) (e error) {
- b := []byte{}
- switch p.(type) {
- case string:
- b = []byte(p.(string))
- case []byte:
- b = p.([]byte)
- default:
- if b, e = json.Marshal(p); e != nil {
- return errors.Wrapf(e, "util Unmarshal")
- }
- }
- e = json.Unmarshal(b, res)
- // defer func(e error) {
- // if e != nil {
- // log.Error("json UnMarshal ", e)
- // }
- // }(e)
- return errors.Wrapf(e, "util Unmarshal")
- }
- func UnmarshalNoflag(p interface{}, res interface{}) (err error) {
- b := make([]byte, 0)
- switch p.(type) {
- case string:
- b = []byte(p.(string))
- case []byte:
- b = p.([]byte)
- default:
- b, err = json.Marshal(p)
- if err != nil {
- return
- }
- }
- err = json.Unmarshal(b, res)
- return
- }
- func Marshal(p interface{}) (b []byte, err error) {
- // json.MarshalIndent(p, "", " ")
- if b, err = json.Marshal(p); err != nil {
- log.Error("json Marshal error:", err, p)
- }
- return
- }
- func JsonMarshal(p interface{}) (r io.Reader, err error) {
- if p == nil {
- return
- }
- var b []byte
- switch p.(type) {
- case string:
- b = []byte(p.(string))
- case []byte:
- b = p.([]byte)
- default:
- b, err = json.Marshal(p)
- if err != nil {
- err = log.Error("failed to marshal", err, p)
- return
- }
- }
- r = bytes.NewBuffer(b)
- return
- }
- func NewMap(name string, value interface{}) map[string]interface{} {
- return map[string]interface{}{
- name: value,
- }
- }
|