I have Date instance representing elapsed day. Try to convert it to number of days and then backward gives different result. 

```
public static long date4Serialization(Date date) {
    return TimeUnit.DAYS.convert(date.getTime(), TimeUnit.MILLISECONDS);
}

public static Date deserializeDate(long value) {
    return new Date(TimeUnit.MILLISECONDS.convert(value, TimeUnit.DAYS));
}

 public static void main(String []args){
    try {
        Date date = new SimpleDateFormat("dd.MM.yyyy").parse("05.05.2014");
        System.out.println(date);
        //Mon May 05 00:00:00 EDT 2014
        System.out.println(deserializeDate(date4Serialization(date)));
        //Sun May 04 20:00:00 EDT 2014T
    } catch (ParseException e) {
        throw new RuntimeException(e);
    }
 }

```

Any thoughts..