O mistério das datas

3 respostas
N

1 - Eu devo pegar a data do sistema usando java.util.Date e depois converter para java.sql.Date ou posso usar diretamente a que eu peguei com java.sql.Date?

2 - Eu peguei a data do sistema assim:

java.sql.Date data = new Date(System.currentTimeMillis());

e no PreparedStatement eu faço normalmente:

preparedStatement.setDate(1, data);

Quando eu acesso essa data que salvei no MySQL, ela está salva da maneira que eu preciso, no formado DD/MM/YYYYY.

Mas se eu usar um:
System.out.println(date);
A data aparece no formato MM/DD/YYYY, que deve ser o padrão dos Estados Unidos.

Porque isso?

3 Respostas

P

esse eh o formato padrão, quando vc faz um sysout ele esta fazendo um toString(), se vc quiser alterar a formatação, estudo um pouco sobre SimpleDateFormat
http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html

mas para vc manipular data, vale mais a pena vc estudar Calendar http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html

espero ter ajudado…

flw

_

Dentro do banco, a data é salva como o System.currentMillis() te dá, ou seja… um long com o numero de milisegundos desde 01/01/1970 (se nao me engano)…

A representação padrão no banco, depende do banco…

O que você pode fazer é pegar o valor através do resultSet.getDate(), transformar para java.util.Date de novo e utilizar o SimpleDateFormat, como o pedrobusko comentou…

N

Eu só quero pegar a data no sistema e salvar no MySQL no formato
dd/mm/yyyy.

Criado 31 de janeiro de 2007
Ultima resposta 31 de jan. de 2007
Respostas 3
Participantes 3