-
Notifications
You must be signed in to change notification settings - Fork 3
/
strftime_test.go
80 lines (73 loc) · 1.48 KB
/
strftime_test.go
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package fasttime
import (
"testing"
"time"
)
var atime = time.Date(2006, 1, 2, 15, 03, 04, 0, time.FixedZone("MST", -25200))
func TestStrftime(t *testing.T) {
cases := []struct {
Format string
Result string
}{
{"%a", "Mon"},
{"%A", "Monday"},
{"%b", "Jan"},
{"%B", "January"},
{"%c", "Mon Jan 2 15:03:04 2006"},
{"%C", "20"},
{"%d", "02"},
{"%D", "01/02/06"},
{"%e", " 2"},
{"%F", "2006-01-02"},
{"%G", "2006"},
{"%g", "06"},
{"%h", "Jan"},
{"%H", "15"},
{"%I", "03"},
{"%j", "002"},
{"%k", "15"},
{"%l", " 3"},
{"%m", "01"},
{"%M", "03"},
{"%n", "\n"},
{"%p", "PM"},
{"%P", "pm"},
{"%r", "03:03:04 PM"},
{"%R", "15:03"},
{"%s", "1136239384"},
{"%S", "04"},
{"%t", "\t"},
{"%T", "15:03:04"},
// {"%u", "1"},
// {"%U", "01"},
{"%V", "01"},
{"%w", "1"},
// {"%W", "01"},
// {"%x", "02/01/2006"},
// {"%X", "15:03:04"},
{"%y", "06"},
{"%Y", "2006"},
{"%z", "-0700"},
{"%Z", "MST"},
{"%%", "%"},
}
for _, c := range cases {
if got, want := Strftime(c.Format, atime), c.Result; got != want {
t.Errorf("Strftime(%+v, %v) want=%v got=%v", c.Format, atime, want, got)
}
}
u := atime.UTC()
if Strftime("%z", u) != "+0000" {
t.Errorf("%%z for UTC: %s", Strftime("%z", u))
}
}
func BenchmarkStdTimeFormat(b *testing.B) {
for i := 0; i < b.N; i++ {
atime.Format("2006-01-02 15:04:05")
}
}
func BenchmarkFastTimeFormat(b *testing.B) {
for i := 0; i < b.N; i++ {
Strftime("%Y-%m-%d %H:%M:%S", atime)
}
}