diff --git a/pkg/mcclient/options/base.go b/pkg/mcclient/options/base.go index 5480be1395..eafefcceec 100644 --- a/pkg/mcclient/options/base.go +++ b/pkg/mcclient/options/base.go @@ -3,6 +3,7 @@ package options import ( "fmt" "reflect" + "time" "yunion.io/x/jsonutils" "yunion.io/x/pkg/gotypes" @@ -88,6 +89,11 @@ func optionsStructRvToParams(rv reflect.Value) (*jsonutils.JSONDict, error) { if ft.Anonymous { continue } + if f.Type() == gotypes.TimeType { + t := f.Interface().(time.Time) + p.Set(name, jsonutils.NewTimeString(t)) + continue + } // TODO msg := fmt.Sprintf("do not know what to do with non-anonymous struct field: %s", ft.Name) panic(msg)