Work as with a normal java.util.Date, update the time part using Calendar, then update the timestamp with
setTime(long time)
Example
Calendar c=Calendar.getInstance();
c.setTimeInMillis(time.getTime());
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
ts.setTime(c.getTimeInMillis());
System.out.println(ts.getTime());
EDIT
Example 2
Timestamp ts;
//give some value to ts
Time time ;
//give some value to time
//Calendar based on ts
Calendar cTs=Calendar.getInstance();
cTs.setTimeInMillis(ts.getTime());
//Calendar based on time
Calendar cTime=Calendar.getInstance();
cTime.setTimeInMillis(time.getTime());
cTs.set(Calendar.HOUR_OF_DAY, cTime.get(Calendar.HOUR_OF_DAY));
cTs.set(Calendar.MINUTE, cTime.get(Calendar.MINUTE));
cTs.set(Calendar.SECOND, cTime.get(Calendar.SECOND));
cTs.set(Calendar.MILLISECOND, cTime.get(Calendar.MILLISECOND));
//set value of ts based on the modified cTs
ts.setTime(cTs.getTimeInMillis());
System.out.println(ts.getTime());