Mock time.Now() in golang
time.Date style
package main
import (
	"fmt"
	"github.com/tkuchiki/faketime"
	"time"
)
func main() {
	fmt.Println(time.Now()) // 2017-06-07 18:59:35.01959464 +0900 JST
	f := faketime.NewFaketime(2009, time.November, 10, 23, 0, 0, 0, time.UTC)
	defer f.Undo()
	f.Do()
	fmt.Println(time.Now()) // 2009-11-10 23:00:00 +0000 UTC
}with time.Time
package main
import (
	"fmt"
	"github.com/tkuchiki/faketime"
	"time"
)
func main() {
	fmt.Println(time.Now()) // 2017-06-07 18:59:35.01959464 +0900 JST
    t := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC)
	f := faketime.NewFaketimeWithTime(t)
	defer f.Undo()
	f.Do()
	fmt.Println(time.Now()) // 2009-11-10 23:00:00 +0000 UTC
}