Formatar Data

Olá!
Eu tenho uma data no seguinte formato:
Mon Aug 27 2012 00:00:00 GMT-0300 (Hora oficial do Brasil)
tem como eu passar isso para simplesmente 27/08/2012 ?
Obrigada!!!

Converta isso para String, usando SimpleDateFormat.

Sim.

não entendi… vc pode ser mais específico…desculpa!!!

Google it:
format date java

antes de postar aqui jah busquei em todos os lugares…
mas não entendi as explicações…

Tem que mastigar bem mastigadinho né… :smiley:

SimpleDateFormat fdata = new SimpleDateFormat("dd/MM/yyyy");
Date xdata = new Date();
String  data;
data = fdata.format(xdata);

:lol: Vamos Estudar galera!

[quote=oitathi]antes de postar aqui jah busquei em todos os lugares…
mas não entendi as explicações…[/quote]Pois é, quando eu procurei com as mesmas palavras q eu te disse eu achei http://exampledepot.com/egs/java.text/FormatDate.html como primeiro link.

Creio que você só não procurou no google com as palavras certas…

só q isso tah chegando como uma string e não como uma data!!!

o q eu recebo é uma string

Vamos tentar mais uma vez, pesquise no google:
format string to date java

de boa, vc não tah ajudando
e vc é bem grosso por sinal
vc não precisa perder seu preciso tempo mandando os outros buscarem coisas no google.
se eu já falei q não entendi os exemplos de lá é pq não entendi!
pra q vc responde então? pra ganhar ponto aqui?
acho q os moderadores deviam punir caras q nem vc

Deve ser Pq ele tá pesquisando no IE… ^^ hahahah!

Pesquisa isso Brother: “casting string to date”…

E Cuidado com o que fala, ninguem tem culpa se vc lê e não entende!

[quote=oitathi]de boa, vc não tah ajudando
e vc é bem grosso por sinal
vc não precisa perder seu preciso tempo mandando os outros buscarem coisas no google.
se eu já falei q não entendi os exemplos de lá é pq não entendi!
pra q vc responde então? pra ganhar ponto aqui?
acho q os moderadores deviam punir caras q nem vc[/quote]Grosso eu? rapaz… tem gente aqui bem pior que eu.
Eu to querendo te mostrar que você será um profissional mais valorizado se você aprender usar o google.
A diferença de uma pessoa que encontra o que quer no google e a que não encontra, na maioria das vezes, são os termos procurados.
Eu te passei os termos correto, mas pelo visto você prefere continuar pensando “eu não entendi e se alguém não me der algo pronto não irei entender”.
Bem, boa sorte aí.

gente, eu fiz o q vcs falaram…
por isso q postei
ele não entende o formato q eu passei
dah o seguinte erro:

exception is java.text.ParseException: Unparseable date: “Thu Aug 30 2012 00:00:00 GMT-0300 (Hora oficial do Brasil)”"},

meu código tah assim:

public void setDataVinculo(String dataVinculo) throws ParseException {
		Date date = new Date(); 
		DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");  
        date = (java.util.Date)formatter.parse(dataVinculo);  

Quem for gentil em me ajudar, obrigada…mas só os educados!

Oitathi-san, vou explicar direitinho para você entender.

Primeira coisa: isso que você está mostrando ( Mon Aug 27 2012 00:00:00 GMT-0300 ) é o resultado de imprimir uma string que já existe nesse formato, ou então é um java.util.Date?

Vamos supor que seja um java.util.Date.

Na verdade, a classe java.util.Date não guarda dentro dela uma coisa como “Mon Aug 27 2012 00:00:00 GMT-0300”.
Ela guarda dentro dela um long (um número de 64 bits) que é o número de milissegundos passados desde 1/1/1970. Ou seja, na verdade o “verdadeiro valor” de um java.util.Date é um número, não esse troço que você está mostrando.

É mais ou menos como o seu salário quando está depositado no banco.

O seu salário, depositado no banco (digamos que seja 10.000,00) não está em um cofre do banco, como um monte de notas de 100 reais. Ele está como um número binário.

Quando o sistema do banco precisa mostrar o seu saldo, ele mostra uma String, talvez no formato “10000.00” ou então “10.000,00”, ou talvez até “dez mil reais e nenhum centavo”.

Quando o sistema do banco precisa lhe dar o dinheiro em reais quando você vai sacá-lo em um caixa automático, ele então dá o comando para o caixa automático para contar o dinheiro, e assim por diante.

Mas nunca há um bolinho de dinheiro, separado em uma caixinha lá no banco, que é o seu salário, separadinho como notas.

Portanto, o que você sempre “vê” é uma String, e o que você usa para representar uma data é um java.util.Date, que sempre precisará de um java.text.SimpleDateFormat para ser representado como uma string “dia/mês/ano” ou “year-month-day” ou sei lá como.

acho q vcs q não entendem a pergunta…
mas beleza…

Cara, o link que te mandei la em cima, e a sugestão do entanglement já matam sua dúvida, sua string não está sendo parseada corretamente justamente porque o formato que você quer não é ‘dd/MM/yyyy’.

Se você olhar na documentação do SimpleDateFormat, ele te ensina como identificar cada parte no seu formato. O formato que você tem é um pouco diferente do comum, eu entendo, mas ainda assim, está lá.

Agora você disse que está recebendo o valor “Mon Aug 27 2012 00:00:00 GMT-0300” como uma String. Ai, isso é chato de converter de volta para um java.util.Date.

Se realmente for isso, então você pode usar o SimpleDateFormat, mas na direção inversa (usar o método “parse”, que converte de String para Date, não “format”. ) .

Então basicamente você, para passar de “Mon Aug 27 2012” para “27/08/2012”, precisa usar 2 SimpleDateFormat: um que converte de String para Date, e outro que converte de Date para String, no formato desejado.

eu não recebo uma data, recebo uma string
e para facilitar a leitura de vcs, eu quero tranformar essa string em outra… apenas com dd/mm/yyyy
podia ficar dando split…mas fiaria feio… queria saber se tem um jeito mais bonito