Olá a todos. Vou ser bem direto:
Tinha um Calendar,passei para String e agora quero voltar para Calendar. Ele já está no formato de Calendar,prontinho! Só que não estou conseguindo transformar a String para Calendar.
Obrigado.
Olá a todos. Vou ser bem direto:
Tinha um Calendar,passei para String e agora quero voltar para Calendar. Ele já está no formato de Calendar,prontinho! Só que não estou conseguindo transformar a String para Calendar.
Obrigado.
Como assim passou para string? Vc fez alguma conversão vc mesmo ou usou o toString() ?
Para Calendar diretamente sem usar um “split” eu não conheço.
Você pode usar a Classe SimpleDateFormat, com o método .parse(suaString).
Mas isso converte para do tipo String para Date. Não sei se te ajuda. =S
Seguinte:
1º Escrevi em um arquivo texto no formato calendar,separado por ";":
public void salvar(Locacao locacao) throws IOException{
out.write(String.valueOf(locacao.getValor()));
out.write(";");
out.write(locacao.getDataSaida().getTime().toString());
out.write(";");
out.write(locacao.getDataDevolucao().getTime().toString());
out.write(";");
out.write(String.valueOf(locacao.getKmSaida()));
out.write(";");
out.write(String.valueOf(locacao.getKmEntrada()));
out.write(";");
out.write(String.valueOf(locacao.getPrevisaoDias()));
out.write(";");
out.write(String.valueOf(locacao.getTipo().getPrecoKm()));
out.write(";");
out.write(locacao.getTipo().getTipo());
out.write(";");
out.write(String.valueOf(locacao.getTipo().getTaxaBase()));
out.write("\n");
out.flush();
out.close();
}
2º - Preciso fazer uma pesquisa,pra saber se está cadastrado. Converto essas strings que estão no arquivo texto (já separadas com o método split),para os tipos originais (double,int,Calendar,etc...)
private Locacao converteOriginal (String s[],Locacao loc) {
TipoLocacao tipo = loc.getTipoLocacao();
loc.setValor(Double.parseDouble(s[0]));
//loc.setDataSaida(s[1]); AQUI PRECISO CONVERTER DE STRING PARA CALENDAR
//loc.setDataDevolucao(s[2]); AQUI TAMBÉM
loc.setKmSaida(Double.parseDouble(s[3]));
loc.setKmEntrada(Double.parseDouble(s[4]));
loc.setPrevisaoDias(Integer.parseInt(s[5]));
tipo.setPrecoKm(Double.parseDouble(s[6]));
tipo.setTipo(s[7]);
tipo.setTaxaBase(Double.parseDouble(s[8]));
loc.setTipo(tipo);
return loc;
}
3º Comparo o que foi passado pelo método pesquisar com esse que converti pros tipos originais (Locacao loc) usando o método equals,retornando verdadeiro ou falso.
if (converteOriginal(s, loc).equals(locacao)){
System.out.println("Encontrado!");
return true;
}else {
System.out.println("Não encontrado!");
return false;
}
Acho que agora ficou mais claro.
Não sei se entendi direito, mas você está transformando o objeto Locacao em uma string e gravando ele em um arquivo de texto correto?
Porque não serializa ele e grava? Aí seria possível recuperá-lo direto como objeto.
E outra, vc ta usando um Calendar para salvar uma data né? Pq não usa o java.util.Date mesmo?
Pois é,analisei melhor aqui e vi que é melhor usar Date do que Calendar,fiz a mudança. Obrigado pela ajuda.