Skip to content

copier-v0.4.11

Choose a tag to compare

@civet148 civet148 released this 16 Jan 02:42
· 2 commits to master since this release
  • 支持integer/string 与 time.Time之间互相拷贝
type UserRegister struct {
	UserId       uint64
	RegisterTime time.Time
	DeletedTime  *time.Time
	UpdateAt     int64
}

type UserRegisterPb struct {
	UserId       uint64
	RegisterTime int64
	DeletedTime  string
	UpdateAt     *time.Time
}

func TestTimeToNumberOrString(t *testing.T) {
	var t64 = int64(1768473438)
	var tm = time.Unix(t64, 0)
	var dt = time.Unix(t64+1000, 0)
	var from = UserRegister{
		UserId:       1,
		RegisterTime: tm,
		DeletedTime:  &dt,
		UpdateAt:     t64,
	}
	var to *UserRegisterPb
	err := copier.Copy(&to, &from, copier.WithTimeLayout(time.DateTime))
	if err != nil {
		t.Error("should not error")
	}
	if to.RegisterTime != t64 || to.DeletedTime == "" {
		t.Errorf("to time (%v) value should equal from time (%v) value", to.RegisterTime, t64)
	}
	t.Logf("from  [%+v] to [%+v]", from, to)
}