summaryrefslogtreecommitdiff
path: root/vendor/github.com/smartystreets/assertions/internal/go-render/render/render_time.go
blob: 990c75d0ffb5d1d4bed9455d642f1c30a5589074 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package render

import (
	"reflect"
	"time"
)

func renderTime(value reflect.Value) (string, bool) {
	if instant, ok := convertTime(value); !ok {
		return "", false
	} else if instant.IsZero() {
		return "0", true
	} else {
		return instant.String(), true
	}
}

func convertTime(value reflect.Value) (t time.Time, ok bool) {
	if value.Type() == timeType {
		defer func() { recover() }()
		t, ok = value.Interface().(time.Time)
	}
	return
}

var timeType = reflect.TypeOf(time.Time{})