Transformar uma string no formato de Hora ou Data para um Date  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
sudeval
JavaGuru
[Avatar]

Membro desde: 08/06/2005 09:48:30
Mensagens: 213
Localização: Fortaleza/CE
Offline

Bem galera to com o seguinte problema:
Recebo uma String com a formatacao de hora ou data.
caso seja Hora ("151230") e data ("08062005")
ae preciso de um metodo que pegue essa String e transforme ela numa objeto Date para ser jogado no banco.

ex:

String ("12022005")

e retornasse uma Date.
com dia 12, mes 02, ano 2005?

tipo retornaria um objeto date pra colocar no banco com a formatacao DDMMAAAA...


é complicado?

Fiz algo assim:

String data = "12022005";
String dia,mes,ano;
dia = data.substring(0,2);
mes = data.substring(2,4);
ano = data.substring(4,8 );

falta transformar isso ae num Date.... -> DDMMAAAA

Algo parecido tbem devo fazer com a hora(HHMMSS), receber ela como string e retornar um Date.

Voces podem me ajudar....

This message was edited 1 time. Last update was at 08/06/2005 10:00:30

Rafael Steil
Administrador
[Avatar]

Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline

Voce pode usar a DateFormat.parse()

http://java.sun.com/j2se/1.4.2/docs/api/java/text/DateFormat.html

Voce pode construir o pattern e entao usar o parse tambem, com a SimpleDateFormat:

http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html

Rafael

"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"

http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil
[Email] [WWW]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

Por favor, antes de perguntar, leia este topico: http://www.guj.com.br/posts/list/15477.java

Esse topico tb pode ajudar: http://www.guj.com.br/posts/list/9440.java
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
kina
JavaEvangelist
[Avatar]

Membro desde: 04/08/2004 18:53:19
Mensagens: 340
Localização: Sampa
Offline

Use o método matches da própria String.
veja mais em:

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#matches(java.lang.String)

Exemplo:
[MSN] [ICQ]
AaroeiraA
Entusiasta Java

Membro desde: 07/12/2004 14:53:35
Mensagens: 20
Offline

Sudeval,

Você já tentou usar o SimpleDateFormat ?
Ele tem um método que retorna um Date. Este método é o parse...
Ou se você preferir, use a classe Calendar, que é muito mais completa.
Dê uma olhada no JavaDOC.

Espero ter ajudado....

AaroeiraA
[MSN] [ICQ]
vivi_grieco
JavaEvangelist
[Avatar]

Membro desde: 29/10/2003 21:57:45
Mensagens: 366
Localização: Belo Horizonte/MG
Offline

Talvez ajude:


Viviane Grieco
SCJP 1.4, SCWCD 1.4
asdhfsd87623
Virtual Machine Man

Membro desde: 24/03/2005 15:11:56
Mensagens: 705
Localização: Rio de Janeiro
Offline

no caso pq vc esta declarando a variavel com a data e hora, nao é interessante vc pegar esses valores de algum lugar. Como vc vai recuperar esses valores ??
vsouza
Entusiasta Java

Membro desde: 05/05/2005 15:26:41
Mensagens: 17
Offline

Gente eu tbm estou com problemas quanto ao uso dessa classe, porfavor me ajudem...

Estou pegando um String (ex: 13/05/1976) de um formulario em Swing, que é uma data:
String data_c = n_data.getText();

Em seguida tento usar a classe date para converter este campo em um tipo date dentro do padrão dd/mm/yyyy:
SimpleDateFormat formatter = new impleDateFormat("dd/MM/yyyy");
Date data = formatter.format(data_c);

Mas apresenta o seguinte erro:
init:
deps-jar:
Compiling 1 source file to sementes/src/cad_sementes.java:94: incompatible types
found : java.lang.String
required: java.util.Date
Date data = formatter.format(data_c);
1 error
BUILD FAILED (total time: 0 seconds)
[b]

Onde estou errado?????
vivi_grieco
JavaEvangelist
[Avatar]

Membro desde: 29/10/2003 21:57:45
Mensagens: 366
Localização: Belo Horizonte/MG
Offline

O método formatter.format() vc está transformando um objeto do tipo java.util.Date em String.
Para transformar de String pra Date, use o método


No caso, o seu código ficaria assim:


Viviane Grieco
SCJP 1.4, SCWCD 1.4
vsouza
Entusiasta Java

Membro desde: 05/05/2005 15:26:41
Mensagens: 17
Offline

Olá, desde já muito obrigado pela ajuda... Mas fazendo da forma que você passou:
String data_c = n_data.getText();
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date data = formatter.parse(data_c);

Apresenta o seguinte Erro:
init:
deps-jar:
Compiling 1 source file to sementes/src/cad_sementes.java:93: unreported exception java.text.ParseException; must be caught or declared to be thrown
Date data = formatter.parse(data_c);
1 error
BUILD FAILED (total time: 1 second)

Victor


vivi_grieco wrote:O método formatter.format() vc está transformando um objeto do tipo java.util.Date em String.
Para transformar de String pra Date, use o método


No caso, o seu código ficaria assim:

vivi_grieco
JavaEvangelist
[Avatar]

Membro desde: 29/10/2003 21:57:45
Mensagens: 366
Localização: Belo Horizonte/MG
Offline

vc tá usando alguma IDE pra desenvolvimento?

Esse erro ocorreu pq tem q estar entre um bloco Try-catch, , dessa forma:




Viviane Grieco
SCJP 1.4, SCWCD 1.4
vsouza
Entusiasta Java

Membro desde: 05/05/2005 15:26:41
Mensagens: 17
Offline

Ok, funcionou....
Muitissimo obrigado.

Victor

vivi_grieco wrote:vc tá usando alguma IDE pra desenvolvimento?

Esse erro ocorreu pq tem q estar entre um bloco Try-catch, , dessa forma:



emanoeltadeu
JavaTeenager
[Avatar]

Membro desde: 01/06/2006 13:22:56
Mensagens: 181
Offline

Pessoal, no meu caso preciso somente me preocupar com a hora. Recebo uma string do tipo
hora = "12:30" e preciso fazer uma validação, pra saber se a hora está no formato correto, no estilo hh:mm. preciso verificar se hh é maior do que 23 e etc. alguém pode me dar uma idéia de como fazer isso?
sudeval
JavaGuru
[Avatar]

Membro desde: 08/06/2005 09:48:30
Mensagens: 213
Localização: Fortaleza/CE
Offline

so precisa saber se ta ok ou não?
pode ser até com substring!

ou até com o split!

algo como :


ae vc pode fazer os testes:


talvez tenha alguma outra forma mais simples, mais é por ae
emanoeltadeu
JavaTeenager
[Avatar]

Membro desde: 01/06/2006 13:22:56
Mensagens: 181
Offline

kra vlw vou ver isso tb....mas tava pensando no uso de expressões regulares...oq acha disso:

no caso testo os cinco caracteres: hh:mm. no caso o prob é q não posso ter a hora 29, mas posso ter a 19. aí a validação do segundo caractere só pode ir até 9 qdo o primeiro for 1...aí ja complicou um pouco...
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team