é possível subtrair datas como string?

é o seguinte eu estou fazendo um código em que retirei a data do sistema e tenho a data de um ficheiro, esta data tem de ser trabalhada porque vem como 20090821 e o programa para onde a quero enviar só lê 21-08-2009.

o que queria agora era a idade do ficheiro.

o código é o seguinte:

if (chave.equals("PATIENT_BIRTH_DATE")) {  
                                                	                          dn = valor; 
                                                	                          char[] letras = dn.toCharArray(); 
                                                	                          char primeira = dn.charAt(0); 
                                                	                          char segunda = dn.charAt(1);
                                                	                          char terceira = dn.charAt(2);
                                                	                          char quarta = dn.charAt(3);
                                                	                          
                                                	                          char priseg = dn.charAt(4);
                                                	                          char segseg = dn.charAt(5);
                                                	                          
                                                	                          char priter = dn.charAt(6);
                                                	                          char segter = dn.charAt(7);
                                                	                          
                                                	                          ano = (""+primeira+""+segunda+""+terceira+""+quarta+"");
                                                	                          mes = (""+priseg+""+segseg+"");
                                                	                          dia = (""+priter+""+segter+"");
                                                	                          
                                                	                          fimdn = (""+dia+"-"+mes+"-"+ano+"");
                                                	                          
                                                	                          String dataConfig = "dd-MM-yyyy";
																			  SimpleDateFormat formatada = new SimpleDate Format (dataConfig);
																			  Date datahoje = new Date();
																			  String dataform = formatada.format(datahoje);

Obrigada

Olha da uma lida neste tópico ai acho que pode te ajudar!

http://www.guj.com.br/posts/list/130741.java#704446

Olá colega lusitana! Para saber quantos dias esse aquivo possui, você pode usar o seguinte código!

public class Test {

	/**
	 * @param args
	 * @throws ParseException 
	 */
	public static void main(String[] args) throws ParseException {
		String d = "20090821";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
		Date date = sdf.parse(d);
		sdf.applyPattern("D");
		System.out.println(sdf.format(new Date(System.currentTimeMillis() - date.getTime())));

	}

}

Use String para representar texto. Não outras coisas.

Se você está trabalhando com datas, use a classe Calendar, ou Date. Mas não String.