Galera,
Tem como criar um TimeStamp apartir de um String?
Ex: String strData = “2003-12-31 17:48:00”;
Dessa String criar um TimeStamp? Alguém já se deparou com isso ou tem outra solução?
[]´s
Galera,
Tem como criar um TimeStamp apartir de um String?
Ex: String strData = “2003-12-31 17:48:00”;
Dessa String criar um TimeStamp? Alguém já se deparou com isso ou tem outra solução?
[]´s
Já resolvi.
Usei o construtor : TimeStamp(int,int,int,int,int,int,int)
[]´s
1.1) Como converter uma String em um Date:
java.text.DateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
java.util.Date data = df.parse(strData, new java.text.ParsePosition(0));
Não entendi direito o ParsePosition, de forma que acho que você deve tomar cuidado com essa classe.
1.2) Como converter java.util.Date para java.sql.Timestamp.
Timestamp é derivada de Date. Poderia fazer simplesmente um cast, mas acho que isso não daria certo. Tente isso:
TimeStamp ts = new TimeStamp(data.getTime());
TimeStamp ts = TimeStamp.valueOf(strData);
strData deve estar no formato “yyyy-mm-dd hh:mm:ss.fffffffff”, onde “fffffffff” são os bilionésimos de segundo.
Espero que sirva:
Thiago:
Este Construtor do Timestamp() funciona, mas está depreciado. Preste atenção na documentação.
To ligado que ele é deprecated. Tem algum problema em usa-lo?
Vou tentar utilizar as saidas citadas por voce.
[]´s
Rafael,
Não existe um construtro TimeStamp que aceite um Date como parametro.
Tenho a api JavaTM 2 Platform Std. Ed. v1.4.1, e pelo menos nela nao.
Tem aquele que eu usei e um que aceita um long.
[]´s
Funcionalmente, não tem problema nenhum… ainda. Mas lembre-se que um método deprecated pode muito bem ser retirado nas próximas versões.
E também vai acontecer que sempre for compilar, vai aparecer um warning chato avisando sobre o construtor deprecated. A não ser se desativar os warnings ao rodar o javac.
Mas se quiser usar, tudo bem. Mas é por sua própria conta e risco.
:arrow: Agora li sua última observação. Não estou usando data diretamente. Estou usando data.getTime() que retorna um long, que é o que o construtor de TimeStamp aceita.
Opa desculpa a gafe. O construtor TimeStamp(long) deve funcionar.
Vou tirar o deprecated.
Realmente esses warnings enchem o saco! rs
Se eu encontrar problemas volto a postar.
[]´s
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh24:mm:ss");
Date data = df.parse("2003-12-31 17:48:00", new ParsePosition(0));
Timestamp ts = new Timestamp(data.getTime());
System.out.println("-------> "+ts);
Parece que nao executa essa parte do codigo. Ve se vc encherga oq esta faltando.
[]´s
Thiago:
O erro está aqui:
DateFormat df = new SimpleDateFormat(“yyyy-MM-dd hh24:mm:ss”);
Não sei de onde você inventou este “hh24”. Você queria registrar as horas de 0 até 23 suponho? Segundo a API do SimpleDateFormat você deveria agir assim:
*Hour in day (0-23):
DateFormat df = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
*Hour in day (1-24):
DateFormat df = new SimpleDateFormat(“yyyy-MM-dd kk:mm:ss”);
*Hour in am/pm (0-11):
DateFormat df = new SimpleDateFormat(“yyyy-MM-dd KK:mm:ss”);
*Hour in am/pm (1-12):
DateFormat df = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
Foi isso que te passei originalmente.
De fato, estou descobrindo estas sutilezas da formatação de horas agora, enquanto escrevo este texto.
Espero que sirva. E leia a documentação da próxima vez, tá legal?
Que dura hein?
Mas ta valendo, fui meio preguiçoso mesmo.
[]´s