@@ -34,12 +34,18 @@ var jsonTests = []jsonTest{
3434 {
3535 a : time .Date (2016 , 5 , 15 , 1 , 2 , 3 , 4000000 , time .UTC ),
3636 b : `{"$date":"2016-05-15T01:02:03.004Z"}` ,
37+ }, {
38+ a : time .Date (2016 , 5 , 15 , 1 , 2 , 3 , 4000000 , time .FixedZone ("CET" , 60 * 60 )),
39+ b : `{"$date":"2016-05-15T01:02:03.004+01:00"}` ,
3740 }, {
3841 b : `{"$date": {"$numberLong": "1002"}}` ,
3942 c : time .Date (1970 , 1 , 1 , 0 , 0 , 1 , 2e6 , time .UTC ),
4043 }, {
4144 b : `ISODate("2016-05-15T01:02:03.004Z")` ,
4245 c : time .Date (2016 , 5 , 15 , 1 , 2 , 3 , 4000000 , time .UTC ),
46+ }, {
47+ b : `ISODate("2016-05-15T01:02:03.004-07:00")` ,
48+ c : time .Date (2016 , 5 , 15 , 1 , 2 , 3 , 4000000 , time .FixedZone ("PDT" , - 7 * 60 * 60 )),
4349 }, {
4450 b : `new Date(1000)` ,
4551 c : time .Date (1970 , 1 , 1 , 0 , 0 , 1 , 0 , time .UTC ),
@@ -180,6 +186,11 @@ func (s *S) TestJSON(c *C) {
180186 value = zerov .Elem ().Interface ()
181187 }
182188 c .Logf ("Loaded: %#v" , value )
189+ if ctime , ok := item .c .(time.Time ); ok {
190+ // time.Time must be compared with time.Time.Equal and not reflect.DeepEquals
191+ c .Assert (ctime .Equal (value .(time.Time )), Equals , true )
192+ continue
193+ }
183194 c .Assert (value , DeepEquals , item .c )
184195 }
185196}
0 commit comments