I just fixed this in cvs so that acs_object__get_attribute will work correctly with timestamps. You just need to add a cast to varchar on the selected value:
create function acs_object__get_attribute (integer,varchar)
returns varchar as '
declare
object_id_in alias for $1;
attribute_name_in alias for $2;
v_table_name varchar(200);
v_column varchar(200);
v_key_sql text;
v_return text;
v_storage text;
v_rec record;
begin
v_storage := acs_object__get_attribute_storage(object_id_in, attribute_name_in);
v_column := acs_object__get_attr_storage_column(v_storage);
v_table_name := acs_object__get_attr_storage_table(v_storage);
v_key_sql := acs_object__get_attr_storage_sql(v_storage);
for v_rec in execute ''select '' || quote_ident(v_column) || ''::varchar as return from '' || quote_ident(v_table_name) || '' where '' || v_key_sql
LOOP
v_return := v_rec.return;
exit;
end loop;
if not FOUND then
return null;
end if;
return v_return;
end;' language 'plpgsql';