golang设定时间值.时间

前端之家收集整理的这篇文章主要介绍了golang设定时间值.时间前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
package main

       import (
       "fmt"
       "reflect"
     )

      func main() {
      type t struct {
         N int
       }
      var n = t{42}
      fmt.Println(n.N)
      reflect.ValueOf(&n).Elem().FieldByName("N").SetInt(7)
      fmt.Println(n.N)
      }

下面的编程工作的问题是如何用time.Time类型像这样做

package main

     import (
       "fmt"
       "reflect"
      )

     func main() {
       type t struct {
          N time.Time     
       }
      var n = t{ time.Now() }
      fmt.Println(n.N)
      reflect.ValueOf(&n).Elem().FieldByName("N"). (what func)   (SetInt(7) is only for int)         // there is not SetTime 
       fmt.Println(n.N)
       }

这很重要,因为我打算在通用结构上使用它

我真的很感谢你对此的帮助

只需使用您要设置的时间的reflect.Value调用Set():
package main

import (
    "fmt"
    "reflect"
    "time"
)

func main() {
        type t struct {
                N time.Time
        }
        var n = t{time.Now()}
        fmt.Println(n.N)

        //create a timestamp in the future
        ft := time.Now().Add(time.Second*3600)

        //set with reflection
        reflect.ValueOf(&n).Elem().FieldByName("N").Set(reflect.ValueOf(ft))

        fmt.Println(n.N)
}

猜你在找的Go相关文章