Calendar para String e voltar para Calendar

5 respostas
S

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.

5 Respostas

I

Como assim passou para string? Vc fez alguma conversão vc mesmo ou usou o toString() ?

Mstanguine

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

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.

I

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?

S

Pois é,analisei melhor aqui e vi que é melhor usar Date do que Calendar,fiz a mudança. Obrigado pela ajuda.

Criado 18 de outubro de 2011
Ultima resposta 18 de out. de 2011
Respostas 5
Participantes 3