Olá galera… Estou estudando J2ME
No RMS, para gravar data estou utilizando String, pois nao achei um writeDate.
Então qdo uso :
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeUTF(meuObjeto.getData().ToString);
Ele grava “Web Feb 06 00:00:00 GMT-03:00 2008”.
Eu gostaria que gravasse 06/02/2008.
Eu utilizer o “Formatter” mas só funcionou no emulador do wtk, no meu cel nao funcionou (Sony Ericsson W200i)
Existe outro jeito de formatar data e numero sem ser o Formatter?
Ou existe um jeito de utilizar o Formatter no meu cel?
Não existe jeito para instalar qualquer JSR. Ou ela vem de fábrica ou nada feito.
Quanto a formatação, vc pode gravar ela como um long usando writeLong(date.getTime() ou System.currentTimemillis()) que funfa.
Para gravar formatado, vc vai ter que usar a classe Calendar, usando como parãmetro de alimentação o teu Date.
Depois é só usar o método get, especificando o que vc quer que a classe retorne (dia, mes ou ano) e formatar isto adequadamente usando um StringBuffer.
[quote=cleriston]sem querer abusar, mas jah abusando, como faço para formatar o valor com 2 casas ?
[/quote]
valorFormatado = "";
valor = 2;
if (valor > 9) {
valorFormatado ="0";
}
valorFormatado = valorFormatado + valor;
Explicação, se o valor é menor que 10, é necessário você adicionar um "0" (zero) na frente, senão não precisa.
Este código é bem tosco mesmo, apenas para lhe dar uma idéia.
Faça ele direitinho como te expliquei, usando o StringBuffer e diversas chamadas de append.
Como melhoria, reduzindo o número de Strings criadas…
StringBuffer dtFormatada = new StringBuffer();
Calendar cld = Calendar.getInstance();
cld.setTime(data);
final int dia = cld.get(Calendar.DAY_OF_MONTH);
if (dia < 10) {
dtFormatada.append('0');
}
dtFormatada.append(dia);
...
e assim por diante...
return dtFormatada.toString();