I can confirm this on our end also - Linux SLES 10 on Jenkins (1.451, CVS 2.1), SLES 9 on CVS server
cvs checkout -P -D 26 Mar 2012 09:36:22 CEST -d workspace test
cvs [checkout aborted]: Can't parse date/time: 26 Mar 2012 09:36:22 CEST
When I put the timestamp into double quoutes I can check out manually. It works for CEST but it does not work for HKT, as cvs does not know it
SimpleDateFormat DATE_FORMATTER = new SimpleDateFormat ("\"yyyy-MM-dd HH:mm z\"", Locale.US);
cvs checkout -P -D "2012-03-26 11:10 CEST" -d workspace test --> ok
cvs checkout -P -D "2012-03-25 11:10 HKT" -d workspace test --> not ok cvs [checkout aborted]: Can't parse date/time: `2012-03-25 11:10 HKT'
According to CVS spec CVS does not understand the timezone spec "+0200" in "date_spec". See http://compbio.soe.ucsc.edu/cvsdoc/cvs-manual/cvs_88.html. So switching SimpleDateFormat from z to Z does not fix it.
Leaving out the timezone is AFAIK not an option, as the server might run on anonther server in another timezone.
But according to the page above cvs server understands "1 second ago" as timestamp in local (server) timezone. So wouldn't it be enough to passover this value instead of the timestamp value? As far as I understood, the timestamp is set to avoid to fetch commits which are done while checking out.