Converter data

12 respostas
R

Olá,

Estou lendo datas de um arquivo e elas estão neste formato(2013-01-15T11:21:00-05:00)

Qual a melhor maneira para interpretá-las para gravar no banco de dados.

12 Respostas

Rodrigo_Sasaki

Você deve usar um DateFormat pra converter essa String para Date, e daí pra frente, faz como sempre fez.

Se tiver dúvidas quanto ao formato, consulte a documentação da classe SimpleDateFormat, lá quase sempre você vai encontrar o que precisa.

Hebert_Coelho

Varia como você quer utilizar.

Você pode salvar apenas as horas, ou apenas a data ou tudo junto.

Siga o conselho do Sasaki em como fazer. [=

R

Obrigado pela dica, agora a dúvida é a seguinte:

Estou tentanto utilizar SimpleDateFormat para fazer a conversão porém não sei que caractere colocar no lugar do T e -5:00 (2013-01-15[color=red]T[/color]11:21:00[color=red]-05:00[/color])

SimpleDateFormat parse = new SimpleDateFormat(“yyyy-MM-dd[color=red]aqui[/color]HH:mm:ss[color=red]aqui[/color]”);

Hebert_Coelho

rlf.renato:
Estou tentanto utilizar SimpleDateFormat para fazer a conversão porém não sei que caractere colocar no lugar do T e -5:00 (2013-01-15[color=red]T[/color]11:21:00[color=red]-05:00[/color])

SimpleDateFormat parse = new SimpleDateFormat(“yyyy-MM-dd[color=red]aqui[/color]HH:mm:ss[color=red]aqui[/color]”);

Você precisa dessa informação? Sabe pra que serve?

R

O T acredito que seja para indicar que é horário(Time), não posso afirmar, e o -5:00 tem relação com o fuso horário.

Acho que vou retirar essa informações da string que fica mais fácil…porém se alguém tiver a solução irei guardar também.

pmlm

O T é um char fixo, o -05:00 é a timezone. O SimpleDateFormat tem timezone mas sem os dois pontos, simplesmente -0500.

new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
R

Valeu pessoal, consegui aqui

Hebert_Coelho

rlf.renato:
Valeu pessoal, consegui aqui
beleza. Coloque o código aqui para ajudar outros. [=

R

A solução que usei:

Primeiramente criei uma função para retirar o ‘:’ do -5:00

SimpleDateFormat parse = new SimpleDateFormat("yyyy-MM-ddHH:mm:ssZ"); startDate = parse.parse(dateStr.replace("T", ""));

R

Sim, é que eu criei uma função para retirar os ‘:’ do -5:00. Vou adicionar essa informação ao post anterior.

WellingtonRamos

O T pode ser tratado como literal (se sempre estiver presente). Coloque-o entre ’ dentro da String pattern.

Já o -05:00, não tem jeito, precisa remover os dois pontos ‘:’ e usar Z (indicativo de timezone).

O pattern ficaria: “yyyy-MM-dd’T’HH:mm:ssZ”

WellingtonRamos

rlf.renato:
A solução que usei:

SimpleDateFormat parse = new SimpleDateFormat("yyyy-MM-ddHH:mm:ssZ"); startDate = parse.parse(dateStr.replace("T", ""));


Bom que resolveu seu problema, apenas fiquei com uma pulga atrás da orelha:
O “T” até poderia resolver sem o uso do replace (vide exemplos acima), mas não entendi como foi resolvida questão do [color=red]-05:00[/color] pois, fiz um teste e, sem remover o último dois-pontos gerava exceção do tipo ParseException. O que me leva a crer que o primeiro exemplo não está exatamente correto (possivelmente seria: “2013-01-15T11:21:00[color=red]-0500[/color]” - sem os últimos dois-pontos.).

Criado 15 de janeiro de 2013
Ultima resposta 15 de jan. de 2013
Respostas 12
Participantes 5