JavaScriptSerializer resta un día de la fecha

estoy usandoJavaScriptSerializer para serializar DateTime, pero cuando lo deserializo muestro un día menos desde la fecha en que se serializa:

Aquí está la prueba:

  DateTime startDate=new DateTime(2012,1,20);//set the 20th of January
  JavaScriptSerializer  serializer=new JavaScriptSerializer();
  string serializeDate= serializer.Serialize(startDate);
  DateTime afterDeserialize= serializer.Deserialize<DateTime>(serializeDate);//I get 19th of Jan
  Assert.Equals(startDate, afterDeserialize);

En primer lugar, pensé que era debido al formato de fecha y hora de javascript, pero, como sé, el Mes es un índice cero.0=January, pero estoy recibiendo un día menos que la fecha original.

Respuestas a la pregunta(3)

Su respuesta a la pregunta